jsonlib转换树型数据没其它框架好
jsonlib的性能请看这篇文章:http://wangym.iteye.com/blog/738933
{ "attr": { "desc": "", "id": 0, "name": "一层", "parentId": -1 }, "data": { "icon": "", "title": "一层标题" }, "children": [ { "attr": { "desc": "", "id": 1, "name": "二层", "parentId": 0 }, "data": { "icon": "", "title": "二层标题" }, "children": [ { "attr": { "desc": "", "id": 2, "name": "三层", "parentId": 1 }, "data": { "icon": "", "title": "三层标题" }, "children": [ { "attr": { "desc": "", "id": 3, "name": "四层", "parentId": 2 }, "data": { "icon": "", "title": "四层标题" } } ] } ] } ]}?
对应java对象如下:
?
public class NodeBean { private AttributeBean attr; private DataBean data; private List<NodeBean> children; }public class AttributeBean {private Long id;private String name;private Long parentId;private String desc;}public class DataBean {private String title; private String icon;}
?
测试代码:
//将树型json数据转换为对象 //jsonlib 2.4 转换 NodeBean jsonlibBean = (NodeBean) JSONObject.toBean(JSONObject.fromObject(responseStr), NodeBean.class); //jackson 2.1.0 转换 ObjectMapper mapper = new ObjectMapper(); try { NodeBean jacksonToBean = mapper.readValue(responseStr, NodeBean.class); } catch (Exception e) { e.printStackTrace(); } //fastjson 1.1.28 转换 NodeBean fastJsonToBean = JSON.parseObject(responseStr, NodeBean.class); //gson 2.2.2 转换树 Gson gson = new Gson(); NodeBean gsonToBean = gson.fromJson(responseStr, NodeBean.class);
?
json-lib调试:注意观察在children 默认会转成MorphDynaBean,MorphdynaClass,HashMap,MorpherRegistry
?
jackson调试:
?
fastjson调试:
?
gson调试:
?
?
效率测试结果json-lib性能最差,不推荐使用
?