一个无聊的需求是需要在后台把一个树形结构拼成json字符串。记录一下这个过程:

把下面那张图的数据列表拼成这样的串:
{"children":[{"children":[{"children":[ ],"id":"4","name":"d","pid":"2"},{"children":[ ],"id":"5","name":"e","pid":"2"}],"id":"2","name":"b","pid":"1"},{"children":[{"children":[ ],"id":"6","name":"f","pid":"3"}],"id":"3","name":"c","pid":"1"}],"id":"1","name":"a","pid":""}

json在线格式化查看工具可以用:http://tool.lu/json/

说下代码实现,先写个VO:

public class T {
private String id;
private String pid;
private String name;
private List<T> children = new ArrayList<T>();
...get...set方法...

//开始拼json
T jsonT = new T();
Map<String, T> map = new HashMap<String, T>();
for (T t : list) {
map.put(t.getId(), t);
}for (T t : list) {
if(!map.containsKey(t.getPid())) {
jsonT = t;
} else {
T pt = map.get(t.getPid());
pt.getChildren().add(t);
}
}JSONObject json=  JSONObject.fromObject(jsonT);
System.out.println(json.toString());}

转换成json串有两种方式:

一、
json-lib-2.4-jdk15.jar
ezmorph-1.0.6.jar
用这两个jar包转换:

JSONObject json=  JSONObject.fromObject(jsonT);
System.out.println(json.toString());

二、
jackson-jaxrs-1.9.13.jar
jackson-core-asl-1.9.13.jar
jackson-mapper-asl-1.9.13.jar
用jackson的包

StringWriter writer = new StringWriter();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(writer, rootVo);
bodyJson = new JSONObject(writer.toString());

第一种方式的jar包在maven库里面找不到,后面改用第二种,整个过程还是有坑啊。。

顺手记录一下,没啥用的一篇文章。

拼上下级关系的json数据格式相关推荐

  1. XML和JSON数据格式对比

    概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  2. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

    json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...

  3. python json数据格式数组内元素递增赋值_利用Python实现JSON格式数据的编码与解码操作...

    导读 JSON (全称:JavaScript Object Notation )是一种轻量级的数据交换格式,所谓的轻量级,是与 XML 数据结构相比而言的,在描述相同的数据下,JSON 所需的字符比X ...

  4. echarts simple graph上下级关系图

    1.需求: 现有功能不够清晰展示关系,修改为上下级关系,现有功能图如下: 修改后功能图如下: 2.话不多说上代码 gxt(src,dst,attacks){if(src.length<=1){t ...

  5. Ajax---使用json数据格式输出数据

    将Ajax得到的数据使用json数据格式输出 1.项目清单 2.代码 2.1.Procince类代码 2.2.ProvinceDao类代码 2.3.QueryJsonServlet类代码 2.4.Te ...

  6. JSON 数据格式解析(转)

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

  7. Ajax系列之JSON数据格式

    JSON数据格式 JSON是什么 JSON是一种轻量级的数据交换格式 JSON文件时独立的,扩展名是".json"该文件中允许保存JSON格式的数据 注意: 在JSON文件中字符串 ...

  8. android 将数据转换成JSON数据格式并使用JSONObject解析JSON格式的数据

    比起XML文件解析,JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量.同时它也有缺点,Json数据的语义性较差,看起来没有XML直观.现在JSON已经被大多数开发人员所接受,在网络 ...

  9. JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式

    JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式 数据格式: json数据格式:属于轻量级数据格式,是javascript的一种描述数据的格式.具有易于解析,语法简单 ...

最新文章

  1. 腾讯广告广点通API接入文档(Android)
  2. redis cluster配置文件和集群状态详解
  3. oracle密码文件认证,Oracle OS认证与口令文件认证详解
  4. 良/恶性乳腺癌肿瘤预测
  5. Flexible 弹性盒子模型之CSS flex-shrink 属性
  6. CICD详解(六)——SVN+Jenkins项目控制实战
  7. 飞天云动能否一飞冲天?
  8. FIL新一轮上涨:FIL算力通证迎来新热潮
  9. mybatis学习4
  10. 浅谈go语言交叉编译
  11. 2022-08-08 第二小组 张明旭 Java学习记录
  12. (PTA)数据结构(作业)5、堆栈
  13. 计算机网络复习题第四章(标有课本知识点)
  14. 用Dynamips构建能够与真实机器通信的IPSec ***环境
  15. PyCharm安装第三方库如Requests
  16. 免费录屏软件Captura下载安装
  17. 渗透测试-web到内网的总结
  18. 【操作系统】Oranges学习笔记(五) 第六章 进程
  19. 拼多多新手卖家必备知识,你掌握了几点?
  20. vs无法写入量的大数据_足球大数据分析 法甲 20:00 南特 VS 梅斯

热门文章

  1. 解决Poser Pro 2014 不能运行问题(附下载地址)
  2. 汽车融资租赁信息化平台搭建要点分享
  3. 对称图形输出问题的思考(例如pta打印沙漏)
  4. [Matplotlib] 减小生成的 PDF 文件大小 - Rasterized
  5. 解读星巴克Q4财报:营收超预期,赛道拥堵加剧咖啡巨头还能笑多久
  6. 什么是跨境电商shopee?为什么这么能赚钱?
  7. 将十进制数字转换为二十六进制字母串
  8. Python 使用闭包写一个计数器【简单易懂,代码可以直接运行】
  9. Android登录注册功能加密处理
  10. 对“判断内六角规格项目”一些改进与完善