繁体   English   中英

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

[英]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提供

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

如何使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM