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

json字符串转map工具类

在Java编程中,JSON字符串是非常常见的数据格式。而有些时候,我们希望将JSON字符串转换成Java中的Map对象,以便进行更加方便的数据处理和操作。因此,在本文中,我们将介绍如何编写一个简单而实用的JSON字符串转Map工具类。

json字符串转map工具类

首先,我们需要使用Java中自带的JSON库——json.jar。

import org.json.JSONException;
import org.json.JSONObject;

public class JsonUtil {

    public static Map json2Map(String jsonStr) {
        Map resultMap = new HashMap();
        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject(jsonStr);
            Iterator iterator = jsonObject.keys();
            while (iterator.hasNext()) {
                String key = iterator.next();
                Object obj = jsonObject.get(key);
                if (obj instanceof JSONObject) {
                    resultMap.put(key,json2Map(obj.toString()));
                } else {
                    resultMap.put(key,obj);
                }
            }
        } catch (JSONException e) {
            e.printstacktrace();
        }
        return resultMap;
    }
}

上述代码中的 json2Map() 方法可将 JSON 字符串转换为 Java 的 Map 对象。该方法首先通过传入的 jsonStr 字符串创建一个 JSONObject 对象,然后通过 JSONObject 对象的 keys() 方法获取所有的键值对,遍历其中的每一个键值对并将其转换为 Map 对象中的键值对。

此外,json2Map() 方法还需注意其递归调用形式,以处理嵌套的 JSON 字符串。

最后,我们可以通过以下代码使用 JsonUtil 工具类:

public static void main(String[] args) {
    String jsonStr = "{\"name\":\"Tom\",\"age\":20,\"addr\":{\"province\":\"Guangdong\",\"city\":\"Shenzhen\"}}";
    Map resultMap = JsonUtil.json2Map(jsonStr);
    System.out.println(resultMap.get("name").toString());
    System.out.println(resultMap.get("age").toString());
    Map addrMap = (Map) resultMap.get("addr");
    System.out.println(addrMap.get("province").toString());
    System.out.println(addrMap.get("city").toString());
}

以上代码输出如下:

Tom
20
Guangdong
Shenzhen

以上便是本文的全部内容,除需注意的是,该工具类仅支持简单的 JSON 字符串转换,并不包含其他的 JSON 处理操作。

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

相关推荐