json与javabean相互转换

环境准备

添加所需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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值