1. 程式人生 > >json與javabean相互轉換

json與javabean相互轉換

環境準備

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要麼不寫構造方法,要麼一定要有無參構造方法