Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622589
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: Java

2016-08-22 21:55:58

使用json-lib实现javabean与json的互转。

json-lib官方文档:  

一般的简单类型的bean,应该不会有什么问题,看官方文档的例子就够了。

当我们把json转换为复杂类型的bean(例如下面的MyBean,里面有List,又嵌套了其他bean)时,
往往会遇到问题。
其实官方文档里有例子和说明,不过不太醒目。

成功转换的关键就在于,调用JSONObject.toBean时,要传入一个classMap,作为转换的提示。
这个classMap中,存放的是json的属性和它对应的类。

例如,下面的例子,json中data是个嵌套类的数组,所以需要传入classMap,提示data对应的类是Persion
  1. class Person{
  2.    private String name;
  3.    // getters & setters
  4. }
  5. class MyBean{
  6.    private String title;
  7.    private List<Person> data;
  8.    // getters & setters
  9. }


  10. String json = "{'title':'hello','data':[{'name':'Wallace'},{'name':'Grommit'}]}";
  11. Map classMap = new HashMap();
  12. classMap.put( "data", Person.class );
  13. MyBean bean = JSONObject.toBean( JSONObject.fromObject(json), MyBean.class, classMap );

阅读(1354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~