json与javabean相互转换

来源:互联网 发布:域名导向服务器 编辑:程序博客网 时间:2024/05/21 09:45

环境准备

添加所需jar包
jsonlib2.4

1.简单javabean转换成json

Person.java

public class Person{      public Person() {}    public Person(String name) {        this.name = name;    }    private String name;         // getters & setters      public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}  

SimpleBeanToJSON .java

import net.sf.json.JSONObject;import util.JSON;public class SimpleBeanToJSON {    /**     * @param args     * @throws CloneNotSupportedException      */    public static void main(String[] args) throws CloneNotSupportedException {        Person person=new Person("thatluck");        JSONObject arrobj=JSON.getJsonObject(person);        System.out.println(arrobj);    }}

输出结果:
{“name”:”thatluck”}

2.复杂javabean转成成json

Group.java

import java.util.List;public class Group {    private List<Person> group;    private String groupName;    public List<Person> getGroup() {        return group;    }    public void setGroup(List<Person> group) {        this.group = group;    }    public String getGroupName() {        return groupName;    }    public void setGroupName(String groupName) {        this.groupName = groupName;    }}

ComplexBeanToJSON .java

import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;import util.JSON;public class ComplexBeanToJSON {    /**     * @param args     * @throws CloneNotSupportedException      */    public static void main(String[] args) throws CloneNotSupportedException {        Group group=new Group();        List<Person> g=new ArrayList<Person>();        group.setGroupName("BAT");        Person liyanhong=new Person("李彦宏");        Person mayun=new Person("马云");        Person mahuateng=new Person("马化腾");        g.add(liyanhong);        g.add(mayun);        g.add(mahuateng);        group.setGroup(g);        JSONObject arrobj=JSON.getJsonObject(group);        System.out.println(arrobj);    }}

输出结果
{“group”:[{“name”:”李彦宏”},{“name”:”马云”},{“name”:”马化腾”}],”groupName”:”BAT”}

3.json转成简单javabean

JSONToSimpleBean.java

import net.sf.json.JSONObject;public class JSONToSimpleBean {    public static void main(String[] args){    String json = "{'name':'thatluck'}";      JSONObject jsonObject = JSONObject.fromObject( json );      Person obj=(Person)JSONObject.toBean(jsonObject,Person.class);    System.out.print(obj.getName());}

输出结果:
thatluck

4.json转成复杂javabean

JSONToComplexBean.java

import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import net.sf.ezmorph.Morpher;import net.sf.ezmorph.MorpherRegistry;import net.sf.ezmorph.bean.BeanMorpher;import net.sf.json.JSONObject;import net.sf.json.util.JSONUtils;import util.JSON;public class JSONToComplexBean {    public static void main(String[] args){        String json = "{'group':[{'name':'李彦宏'},{'name':'马云'},{'name':'马化腾'}],'groupName':'BAT'}";          Map classMap = new HashMap();          classMap.put( "group", Person.class );         classMap.put("groupName", String.class);        Group bean = (Group) JSONObject.toBean( JSONObject.fromObject(json), Group.class, classMap );        Morpher dynaMorpher = new BeanMorpher( Person.class, JSONUtils.getMorpherRegistry() );          MorpherRegistry morpherRegistry=new MorpherRegistry();        morpherRegistry.registerMorpher( dynaMorpher );          List output = new ArrayList();          for( Iterator i = bean.getGroup().iterator(); i.hasNext(); ){             output.add( morpherRegistry.morph( Person.class, i.next() ) );          }          bean.setGroup( output );          Person p=(Person)bean.getGroup().get(1);        System.out.println(p.getName());        JSONObject arrobj=JSON.getJsonObject(bean);        System.out.println(arrobj);    }}

输出结果:

马云{"group":[{"name":"李彦宏"},{"name":"马云"},{"name":"马化腾"}],"groupName":"BAT"}

注意事项:

javabean要么不写构造方法,要么一定要有无参构造方法

更多使用案例参考官方网址:
http://json-lib.sourceforge.net/usage.html

0 0