Java递归遍历JSON的N叉树数据结构
JSON的N叉树数据结构如下:
{"code": 0,"data": [{"name": "xxx","uuid": "1xxx","subscribe": false,"children": [{"name": "xxx","uuid": "2xxx","subscribe": false,"parentId": "1xxx","children": [{"name": "xxx","uuid": "3xxx","subscribe": false,"parentId": "2xxx","children": []},{"name": "xxx","uuid": "3xxx","subscribe": false,"parentId": "2xxx","children": []}......],"message": "success"
}
可以看到data下面数组数据有很多的相同数据:
{"name": "xxx","uuid": "xxx","subscribe": false,"parentId": "xxx","children": []
}
因此可以新建一个实体类来封装这些json数据:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class xxx {private String name;private String uuid;private String subscribe;private List<SZPlusColumn> children;private String parentId;}
接下来把json对象转换成JSONObject类型:
// 请求地址
String pullColumnUrl = "xxx";
// token 直接赋值为 null
String token = null;
// 发起 get 请求同时转换为 JSONObject 类型
JSONObject result = JSONObject.parseObject(HttpUtils.sendGet(pullColumnUrl, token));
获取result里面的data信息:
// 获取 result 里面的 data json 数组
JSONArray jsonArray = result.getJSONArray("data");
将data数组转换为JSONString
// 将 data 数组转换为 JSONString
String data = JSON.toJSONString(jsonArray);
最后再把其转换为 xxx 的 List 集合
// 保存为 xxx 实体类的 List 集合
List<xxx> xxxs = JSON.parseArray(data, xxx.class);
这样就可以得到JSON的N叉树数据结构转换成Java的List数据结构了。
接下来是递归遍历整个List数据结构代码:
public List<xxx> DFSxxx(List<SZPlusColumn> 1xxx, List<xxx> 2xxx) {int 1xxxLen = 1xxx.size();for(int i = 0; i < 1xxxLen; i++) {2xxx.add(new xxx(1xxx.get(i).getUuid(), 1xxx.get(i).getName()));if(!1xxx.get(i).getChildren().isEmpty()) {DFSxxx(1xxx.get(i).getChildren(), 2xxx);}}return 2xxx;
}
这样就可以遍历List整个N叉树里面的数据了。
Java递归遍历JSON的N叉树数据结构相关推荐
- Java 递归遍历文件
Java 递归遍历文件 /*** 递归遍历文件* @param file*/private static void traverse(File file) {String[] filePaths = ...
- Java递归遍历文件夹
好像没有什么可以描述的: 具体在代码中有注释 代码需要 自己优化,wo想象力有限┭┮﹏┭┮ Java递归遍历文件夹: 简单过程: 输入路径 判断是否可以递归(文件夹加入递归) 否则判断后缀 打印. 看 ...
- java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd XML文件:SwordLib.xml SwordLibrary SYST ...
- java 递归 遍历目录下的所有文件
public class Demo{static int level;public static void main(String[] args) throws IOException {//利用递归 ...
- Java——递归遍历目录【获取指定目录下的文件名称】
package com.itheima_02;import java.io.File;public class DiGuiDemo02 {public static void main(String[ ...
- java递归遍历删除文件
import java.io.File;/* 遍历递归删除文件夹类的所有文件*/ public class demo {public static void main(String[] args) { ...
- java递归遍历目录文件
为什么80%的码农都做不了架构师?>>> <!-- lang: java --> import java.io.File ; import java.io.IOEx ...
- java迭代器遍历json,批量替换内容
需求:针对复杂JSON数据的,多个特定节点的特定值进行批量加值,其他节点的不能动. 1. 使用fastjson的JsonObject,修改HashMap为LinkedHashMap使用链表,保证顺序一 ...
- java递归遍历xml所有元素_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
2019独角兽企业重金招聘Python工程师标准>>> xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd ...
最新文章
- sql server 批量删除临时表
- long 雪花算法_雪花算法
- 【代码审计】使用SonarQube进行代码质量分析管理
- new 开始转向PHP
- 额,看房没戴头盔,损失二十万 。。。
- jwt-cli:一个用于解码JSON Web令牌(JWT令牌)的Shell库
- java输出日志_java代码中如何正确使用loggger日志输出
- 牛客16464 神奇的幻方
- 查询中接受的主体参数_Apollo入门引导(三):编写查询解析器
- CECC2018赛季收官站我国×××手夺得年度总冠军
- jquery+ajax验证不通过也提交表单问题处理
- 大厨揭示Google成功秘诀:免费啤酒和寿司
- FutureTask源码分析
- nginx 认证访问web
- Opencv LBP特征
- 华为模拟器eNSP将防火墙配置成三层核心交换机
- 计算机组成原理- 旋转跳跃的指令实现
- UEditor自定义表情包
- uniapp的分享到朋友圈和朋友(APP)
- C++ map通过key获取value