拼上下级关系的json数据格式
2015-02-05 10:31
148 查看
一个无聊的需求是需要在后台把一个树形结构拼成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串有两种方式:
一、
json-lib-2.4-jdk15.jar
ezmorph-1.0.6.jar
用这两个jar包转换:
二、
jackson-jaxrs-1.9.13.jar
jackson-core-asl-1.9.13.jar
jackson-mapper-asl-1.9.13.jar
用jackson的包
第一种方式的jar包在maven库里面找不到,后面改用第二种,整个过程还是有坑啊。。
顺手记录一下,没啥用的一篇文章。
把下面那张图的数据列表拼成这样的串:
{"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 和 XML )
- GWT入门介绍(使用JSON格式的数据通讯)
- Ajax Hacks-hack7接收JSON格式的数据
- jquery的DOM操作,JSON数据格式
- lkJSON-Delphi下使用json数据格式
- JSON 数据格式解析
- 什么是JSON——Atlas采用的数据传输格式
- 扩展了一棵jquery的树插件SimpleTree,加上了json格式数据异步加载能力
- JSON JavaScript数据交换格式
- jsp向EXTJS返回json格式数据
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
- extjs ajax方式前后台数据传送(json格式)
- Ext2.2与Struts2集成,使用Json数据格式传输数据问题
- 一个java处理JSON格式数据的通用类(封装了一个class)
- 一个java处理JSON格式数据的通用类
- ActionScript3中的JSON数据格式
- 【原】轻量级的数据交换格式——初识Json(上)
- 稳扎稳打Silverlight(19) - 2.0通信之调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
- 关于数据交换格式XML和JSON的比较