可以使用main方法测试体验效果
public static void main(String[] args) {
String originalStr = "{\"code\":200,\"msg\":\"success\",\"data\":{\"realName\":\"超级管理员\",\"defaultApp\":\"dbf684a81b06442fbeb61f13b1095a52\",\"systemManagementCenter\":\"[{\\\"children\\\":[{\\\"path\\\":\\\"/applyManage\\\",\\\"children\\\":[{\\\"path\\\":\\\"/sysAppinfo/insert\\\",\\\"text\\\":\\\"应用管理-添加\\\"}],\\\"text\\\":\\\"应用管理\\\"}],\\\"icon\\\":\\\"mdi-cog\\\",\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"应用管理\\\"},{\\\"children\\\":[{\\\"path\\\":\\\"/companyManage\\\",\\\"text\\\":\\\"公司管理\\\"},{\\\"path\\\":\\\"/organizationManage\\\",\\\"text\\\":\\\"机构管理\\\"},{\\\"path\\\":\\\"/userManage\\\",\\\"text\\\":\\\"用户管理\\\"}],\\\"icon\\\":\\\"mdi-account-cog\\\",\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"人员管理\\\"},{\\\"children\\\":[{\\\"path\\\":\\\"/menuManage\\\",\\\"text\\\":\\\"菜单管理\\\"},{\\\"path\\\":\\\"/roleManage\\\",\\\"text\\\":\\\"角色管理\\\"}],\\\"icon\\\":\\\"mdi-hexagon-slice-6\\\",\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"资源管理\\\"},{\\\"children\\\":[{\\\"path\\\":\\\"/userPrivileges\\\",\\\"text\\\":\\\"用户权限管理\\\"}],\\\"icon\\\":\\\"mdi-nut\\\",\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"权限管理\\\"}]\",\"appList\":[{\"id\":\"dbf684a81b06442fbeb61f13b1095a52\",\"appName\":\"营销反欺诈\",\"spid\":\"2c88360e67e34496b474412fee6b174d\",\"compName\":null,\"secret\":\"562ae2a4d1c547908783e68903e71215\",\"secretVersion\":null,\"verifyType\":null,\"appCerId\":null,\"voiceplatform\":null,\"voiceconfig\":null,\"smsconfig\":null,\"devicelimit\":0,\"states\":\"0\",\"foundUserId\":null,\"channelType\":null,\"tradechannelTypeStr\":null,\"createUser\":null,\"createTime\":\"2020-08-06 17:25:30\",\"updateUser\":null,\"updateTime\":\"2023-03-28 16:40:09\",\"appCerB64\":null,\"appTag\":\"mofd\",\"appType\":\"1\",\"key\":null,\"keyVersion\":null,\"createTimeStart\":null,\"createTimeEnd\":null}],\"captchaCenter\":\"[{\\\"path\\\":\\\"/application_manage\\\",\\\"icon\\\":\\\"mdi-table-settings\\\",\\\"text\\\":\\\"场景管理\\\"},{\\\"path\\\":\\\"/dataStatistics\\\",\\\"icon\\\":\\\"mdi-book-open-outline\\\",\\\"text\\\":\\\"数据统计\\\"},{\\\"children\\\":[{\\\"path\\\":\\\"/background_manage\\\",\\\"text\\\":\\\"底图管理\\\"},{\\\"path\\\":\\\"/font_lib_manage\\\",\\\"text\\\":\\\"字体库管理\\\"},{\\\"path\\\":\\\"/blacklist_manage\\\",\\\"text\\\":\\\"黑名单管理\\\"},{\\\"path\\\":\\\"/logo_list\\\",\\\"text\\\":\\\"Logo管理\\\"},{\\\"path\\\":\\\"/source_manage\\\",\\\"text\\\":\\\"验证码管理\\\"},{\\\"path\\\":\\\"/material_manage\\\",\\\"text\\\":\\\"素材管理\\\"}],\\\"icon\\\":\\\"mdi-fountain-pen\\\",\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"自定义\\\"},{\\\"children\\\":[{\\\"path\\\":\\\"/request_log\\\",\\\"text\\\":\\\"请求日志\\\"},{\\\"path\\\":\\\"/validation_log\\\",\\\"text\\\":\\\"验证日志\\\"}],\\\"icon\\\":\\\"mdi-animation-outline\\\",\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"日志\\\"},{\\\"children\\\":[{\\\"path\\\":\\\"/redis_monitor\\\",\\\"text\\\":\\\"Redis监控\\\"},{\\\"path\\\":\\\"/es_monitor\\\",\\\"text\\\":\\\"ES监控\\\"}],\\\"model\\\":\\\"false\\\",\\\"text\\\":\\\"系统监控\\\"},{\\\"path\\\":\\\"/channel_params_config\\\",\\\"text\\\":\\\"参数配置\\\"},{\\\"path\\\":\\\"/code_rules\\\",\\\"text\\\":\\\"验证码规则\\\"},{\\\"path\\\":\\\"/flow_config\\\",\\\"text\\\":\\\"流控配置\\\"},{\\\"path\\\":\\\"/sdk_version\\\",\\\"text\\\":\\\"SDK版本管理设计\\\"}]\",\"textContent\":\"[{\\\"id\\\":\\\"captchaCenter\\\",\\\"name\\\":\\\"智能验证码管理中心\\\",\\\"path\\\":\\\"/application_manage\\\",\\\"icon\\\":\\\"mdi-checkbox-intermediate\\\"},{\\\"id\\\":\\\"systemManagementCenter\\\",\\\"name\\\":\\\"系统管理中心\\\",\\\"path\\\":\\\"/applyManage\\\",\\\"icon\\\":\\\"mdi-cog-outline\\\"}]\",\"userId\":\"888306e1747e4afc838ba6c8c333b999\",\"token\":\"24b8d15633394ca18c720080eecc1ef1\"}}";
JSONObject jsonObject = JSON.parseObject(originalStr);
ArrayList<String> keyList = new ArrayList<>();
ArrayList<String> valueList = new ArrayList<>();
JsonUtils.keyValueJson(jsonObject,keyList,valueList);
keyList.forEach(System.out::println);
valueList.forEach(System.out::println);
}
public static void keyValueJson(JSONObject source, List<String> keyList, List<String> valueList) {
if (source!=null) {
for (Map.Entry<String, Object> entry : source.entrySet()) {
Object value = entry.getValue();
if (value instanceof String || value instanceof Number) {
keyList.add(entry.getKey());
valueList.add(String.valueOf(entry.getValue()));
continue;
}
if (value instanceof JSONObject) {
JSONObject object = (JSONObject) value;
keyValueJson(object,keyList,valueList);
continue;
}
if (value instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) value;
if (jsonArray.isEmpty()) {
continue;
} else {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject o1 = jsonArray.getJSONObject(i);
keyValueJson(o1,keyList,valueList);
}
}
}
}
}
}