欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用fastjson获取json串中的所有键值对

程序员文章站 2022-06-23 11:13:15
获取json中的所有节点 不含jsonarry哈 有需要自己修改具体如下package com.zj.test;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import java.util.*;public class Test_json { public static void main(String[] args){ String s = "{\"A\":...

获取json中的所有键值对 不含jsonarry哈 有需要自己修改

具体如下

package com.zj.test;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.*;

public class Test_json {
    public static void main(String[] args){
        String s = "{\"A\":{\"B\":{\"C\":1,\"D\":2}},\"E\":3}";
        JSONObject jsonObject = JSONObject.parseObject(s);
        Map param = new HashMap();
        for (Map.Entry entry : jsonObject.entrySet()) {
            String object = jsonObject.getString(String.valueOf(entry.getKey()));
            param.put(entry.getKey(),object);
            if(isJsonObject(object)){
                JSONObject son = JSONObject.parseObject(JSON.parseObject(object, String.class));
                getAllKey(son,param);
            }
        }
        System.out.println("=======>"+param);

    }

    public static Boolean isJsonObject(String jsonString){
        try{
            JSONObject.parseObject(JSON.parseObject(jsonString, String.class));
            return true;
        }catch (Exception e){
            return false;
        }
    }

    public static void getAllKey(JSONObject jsonObject,Map param){
        for (Map.Entry entry : jsonObject.entrySet()) {
            String string = jsonObject.getString(String.valueOf(entry.getKey()));
            param.put(entry.getKey(),string);
            if(isJsonObject(string)){
                JSONObject son = JSONObject.parseObject(JSON.parseObject(string, String.class));
                getAllKey(son,param);
            }
        }
    }


}

 

查询结果为

=======>{A={"B":{"C":1,"D":2}}, B={"C":1,"D":2}, C=1, D=2, E=3}

本文地址:https://blog.csdn.net/weixin_41634885/article/details/112002144

相关标签: java