收集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;
}
}