java - 使用 GSON 将 JSONObject 转换为 JSON

标签 java json serialization gson deserialization

我有一个 Java 对象,它包含许多类型的变量,包括一个 JSONObject。 当我调试我的对象时,我得到了以下 JSONObject 字符串:-

{"INCLUSIONS":{"OPTIONS":[{"display":"Complimentary stay for children under 5 without extra bed"}]}} 

但是当我使用:-gson.toJson(JSONObj) 时,我得到了关注

{"myHashMap":{"INCLUSIONS":{"myHashMap":{"OPTIONS":{"myArrayList":[{"myHashMap":{"display":"Complimentary stay for children under 5 without extra bed"}}]}}}}}

请有人详细说明为什么将 JSONObject 转换为 Map & list ?? 或者有什么解决办法吗??

谢谢。

最佳答案

只需使用 myJsonObj.toString()而不是 myJsonObj.toJSON()

您的问题发生是因为 JSONObject 存储为 HashMap 以允许程序员使用基于键的方法获取值。例如,

String jsonStr = "{'key': 'value'}";
JsonObject json = gson.fromJson(jsonStr, JsonObject.class);
String value = json.get("key").getAsString();

您可以看出 json 属性存储为 HashMap<JsonElement>

关于java - 使用 GSON 将 JSONObject 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970634/

相关文章:

java - 在同步块(synchronized block)内执行新线程

java - ORA-12518,TNS :listener could not hand off client connection oracle 11g

jquery - JSON 中的“#”用作 $AJAX url 参数问题

c# - 使用 JSON.NET 序列化时如何将属性从接口(interface)继承到对象

r - 将向量存储在关系数据库中

java - 如何使用 Guavas Splitter 并保留定界符(无正则表达式)?

java - Oracle JDK8:展开循环由JVM转换为NOOP吗?

javascript - 通过 ng-repeat 循环中其他数组的包含来过滤数组

python - 复杂的 Python JSON 对象到自定义字典的转换

c# - 从 Serializationinfo 存储中反序列化枚举?