微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json字符串转map多层

在Java开发中,有时我们需要将一个JSON字符串转换成Map多层结构,以便我们可以方便地对该数据进行处理和操作。本文将介绍如何将JSON字符串转换成Map多层结构。

json字符串转map多层

首先,我们需要将JSON字符串转换成JSON对象,然后递归解析JSON对象,将其中所有的键值对存储到Map中,其中值仍然可以是JSON对象或JSON数组。

import org.json.JSONObject;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class JsonUtils {

    public static Map jsonToMap(JSONObject json) {
        Map map = new HashMap();
        Iterator iterator = json.keys();
        while (iterator.hasNext()) {
            String key = iterator.next();
            Object value = json.get(key);
            if (value instanceof JSONObject) {
                value = jsonToMap((JSONObject) value);
            } else if (value instanceof JSONArray) {
                value = jsonArrayToList((JSONArray) value);
            }
            map.put(key,value);
        }
        return map;
    }

    public static List jsonArrayToList(JSONArray jsonArray) {
        List list = new ArrayList();
        for (int i = 0; i 

代码中使用了org.json库来解析JSON字符串。

使用时,我们可以像下面这样调用

String jsonStr = "{ \"a\": { \"b\": 1,\"c\": [2,3] } }";
JSONObject jsonObj = new JSONObject(jsonStr);
Map map = JsonUtils.jsonToMap(jsonObj);
System.out.println(map);

最后,我们就可以成功地将JSON字符串转换成Map多层结构了。以上代码可适用于JSON对象中同时包含对象与数组的情况。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐