将地图和列表的复杂结构转换为JSON

时间:2013-09-06 08:13:12

标签: java json

我有一张地图>>>> 或类似地图> 我需要将其转换为JSON。

所以我的用例是转换一个对象,该对象可以是具有map或list的通用元素的map或list,这可以递归到任意次。 叶元素可以是整数或字符串。

有没有现成的方法我可以用Java做到这一点。

4 个答案:

答案 0 :(得分:2)

使用GSON。它是用于JSON序列化/反序列化的简单即插即用库。它将处理本机java集合。

一旦您需要最终反序列化JSON,它也会对您有所帮助(但是,它需要更多的努力来反对泛型的反序列化)

答案 1 :(得分:1)

您可以使用

直接创建
Map<String, String> myMap = new HashMap<String, String>();

JSONObject jsonObj = new JSONObject(map);

JSONObject由Json.org提供

http://www.json.org/javadoc/org/json/JSONObject.html

答案 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;
    }
}