[英]Convert complex structure of map and list into JSON
我有一个Map >>>>或类似的Map>,我需要将此转换为JSON。
因此,我的用例是转换一个对象,该对象可以是具有map或list的通用元素的map或list,并且可以递归地进行多次。 叶元素可以是整数或字符串。
有什么现成的方法可以在Java中完成。
使用GSON 。 它是用于JSON序列化/反序列化的简单即插即用库。 它将处理本地的Java集合。
一旦最终需要反序列化JSON,它也将为您提供帮助(但是,在泛型反序列化方面需要更多的努力)
您可以直接使用创建
Map<String, String> myMap = new HashMap<String, String>();
JSONObject jsonObj = new JSONObject(map);
JSONObject由Json.org提供
如何使用Jackson的流式API解析json和创建对象? 像这样的东西http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/
public static Object jsonMapper(Object obj){
if (obj instanceof Map) {
Map map = (Map) obj;
for (Object entryobj : map.entrySet()) {
Entry entry = (Entry) entryobj;
entry.setValue(jsonMapper(entry.getValue()));
}
return new JSONObject(map);
} else if (obj instanceof List) {
List list = (List) obj;
for (int i = 0; i< list.size(); i++) {
Object o = list.get(i);
list.set(i, jsonMapper(o));
}
return new JSONArray(list);
} else { //string or integer
return obj;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.