使用json-lib解析复杂类型bean

1400阅读 0评论2016-08-22 shenyue_sam
分类:Java

使用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 );

上一篇:nginx正向代理配置
下一篇:svn稀疏目录--通过设置工作目录的深度(depth)实现目录树的部分签出