Java 使用GSON将JSONObject转换为JSON

Java 使用GSON将JSONObject转换为JSON,java,json,serialization,gson,deserialization,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":{

我有一个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

请提供您为此编写的Java代码,因为您似乎正在使用myHashMap作为json中使用的变量。