我有一个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&清单?? 或任何工作?
感谢。
答案 0 :(得分:0)
只需使用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>