我试图使用GSON库将JsonObject转换为字符串。但是,结果会多出一个名为"map"的父级层包裹Json。请告诉我哪里做错了,为什么会出现父级"Map"层?
我甚至尝试使用new Gson().toJson(bean)将bean转换,但输出结果也会多出一个名为"map"的父级层包裹Json。
我需要满足以下条件:
1) Mutable object
2) GSON
3) method might handle other object Type
使用下面的库的Maven项目:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
以下是Java代码示例(仅用于理解,不是真实代码,在T中使用):
List<JSONObject> records = new ArrayList <JSONObject> ();
JSONObject bean = new JSONObject();
bean.put("A", "is A");
bean.put("B", "is B lah");
bean.put("C", "is C lah");
bean.put("D", "is D");
records.add(bean);
String JSONBody2 = new Gson().toJson(records);
我期望的输出是[{"D":"is D","A":"is A","B":"is B lah","C":"is C lah"}]
但实际输出是[{"map":{"D":"is D","A":"is A","B":"is B lah","C":"is C lah"}}]
以下是实际代码:
public String Json( String json, List<T> list) {
String JSONBody = new Gson().toJson(list);
}
我需要使用Gson进行序列化,所以我把T放在了这里。但是我不知道为什么这里会出现“map”。之前,它可以正常工作,没有父级“Map”包裹(相同的代码和相同的库,只是新建了一个项目,但出现了这个问题)。
JSONArray
代替List<JSONObject>
。 - Sudhir Ojha