java 递归json数据,生成分层的key值集合

收集json数据的所有keys,放入到list中,层级关系不变

1.定义实体类

public class JsonKeyBo {

    private String keyName;

    private List<JsonKeyBo> childKeys = new ArrayList<>();


    public String getKeyName() {
        return keyName;
    }

    public void setKeyName(String keyName) {
        this.keyName = keyName;
    }

    public List<JsonKeyBo> getChildKeys() {
        return childKeys;
    }

    public void setChildKeys(List<JsonKeyBo> childKeys) {
        this.childKeys = childKeys;
    }
}

2.递归方法

 public static void parseJson(String value, List<JsonKeyBo> list) {
        JSONObject jsonObject = JSONObject.parseObject(value);
        for (String k : jsonObject.keySet()) {
            String v = jsonObject.getString(k);
            JsonKeyBo jsonKey = new JsonKeyBo();
            jsonKey.setKeyName(k);
            list.add(jsonKey);
            if (isJson(v)) {
                parseJson(v, jsonKey.getChildKeys());
            }
        }
    }

    public static boolean isJson(String content) {
        try {
            JSONObject.parseObject(content);
            return true;
        } catch (Exception e) {
            return false;
        }
    }
posted @ 2020-12-03 15:50  sn_wu  阅读(172)  评论(0)    收藏  举报