我有一张地图>>>> 或类似地图> 我需要将其转换为JSON。
所以我的用例是转换一个对象,该对象可以是具有map或list的通用元素的map或list,这可以递归到任意次。 叶元素可以是整数或字符串。
有没有现成的方法我可以用Java做到这一点。
答案 0 :(得分:2)
使用GSON。它是用于JSON序列化/反序列化的简单即插即用库。它将处理本机java集合。
一旦您需要最终反序列化JSON,它也会对您有所帮助(但是,它需要更多的努力来反对泛型的反序列化)
答案 1 :(得分:1)
您可以使用
直接创建Map<String, String> myMap = new HashMap<String, String>();
JSONObject jsonObj = new JSONObject(map);
JSONObject由Json.org提供
答案 2 :(得分:0)
如何使用Jackson流API解析json并创建对象? 像这样的东西 http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/
答案 3 :(得分:0)
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;
}
}