gpt4 book ai didi

java - 如何将 java 中的复杂映射序列化为 JSON

转载 作者:行者123 更新时间:2023-12-02 05:13:45 25 4
gpt4 key购买 nike

我在将 map (或列表)序列化为 JSON 时遇到问题。它可以达到任何级别。我正在使用 GSON 将 map 转换为 JSON,但没有得到所需的输出。考虑下面的例子:

Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", new ArrayList<String>(){{add("value2");add("value3");}});

当我序列化此 map 时,我得到以下输出:

{
"key1" : "value1",
"key2" : "[value2, value3]"
}

当我在 map 中放置 map 时,情况会变得更糟。我想要的输出是:

{
"key1" : "value1",
"key2" : ["value2", "value3"]
}

知道如何获得这样的输出吗?我已经尝试过 ObjectMapper 和 GsonBuilder.registerTypeAdapter 但到目前为止还没有成功。

提前致谢。

最佳答案

我认为将 ArrayList 存储在需要字符串的 HashMap 中是无效的。我会说该代码应该失败,但我想它一定会成功,因为它对你来说不会失败,所以我假设正在发生的是,当你将它插入到 HashMap 中时,Java 实际上正在调用 toString( ) 在幕后将其转换为 String。因此,HashMap 中的值实际上并不是一个数组;而是一个数组。从插入的那一刻起,它就是一根绳子。因此,您将丢失无法在下游挽救的信息。

关于java - 如何将 java 中的复杂映射序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com