读书人

jsonlib变换树型数据没其它框架好

发布时间: 2013-01-28 11:49:56 作者: rapoo

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

jsonlib变换树型数据没其它框架好
?

jackson调试:


jsonlib变换树型数据没其它框架好
?

fastjson调试:


jsonlib变换树型数据没其它框架好
?

gson调试:


jsonlib变换树型数据没其它框架好
?

?

效率测试结果json-lib性能最差,不推荐使用

?

读书人网 >JavaScript

热点推荐