java中jsonobject转hashmap怎么实现

618
2024/2/2 19:32:43
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Java中,可以使用Jackson库将JSONObject转换为HashMap。下面是一个简单的示例:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        ObjectMapper objectMapper = new ObjectMapper();
        try {
            // 将JSON字符串转换为JsonNode对象
            JsonNode jsonNode = objectMapper.readTree(json);

            // 将JsonNode转换为HashMap
            HashMap<String, Object> hashMap = convertJsonNodeToHashMap(jsonNode);

            // 打印HashMap
            for (Map.Entry<String, Object> entry : hashMap.entrySet()) {
                System.out.println(entry.getKey() + ": " + entry.getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static HashMap<String, Object> convertJsonNodeToHashMap(JsonNode jsonNode) {
        HashMap<String, Object> hashMap = new HashMap<>();

        Iterator<Map.Entry<String, JsonNode>> iterator = jsonNode.fields();
        while (iterator.hasNext()) {
            Map.Entry<String, JsonNode> entry = iterator.next();
            String key = entry.getKey();
            JsonNode value = entry.getValue();

            // 处理嵌套的JsonNode
            if (value.isObject()) {
                hashMap.put(key, convertJsonNodeToHashMap(value));
            } else {
                hashMap.put(key, value.asText());
            }
        }

        return hashMap;
    }
}

上述代码使用Jackson库中的ObjectMapper类将JSON字符串转换为JsonNode对象。然后,使用递归方法convertJsonNodeToHashMapJsonNode对象转换为HashMap对象。该方法遍历JsonNode的字段,并根据字段类型处理对应的值。

注意:在使用上述代码之前,需要先引入Jackson库的依赖。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: java如何获取url中的参数值