Java对象与JSON字符串互转

一、引入jar包
使用JSONObject必须引用JSON-lib.jar,同时它还依赖于其他包
common-lang.jar
common-beanuitls.jar
common-collections.jar
common-logging.jar
ezmorph.jar
二、JSONObject对象使用
JSON-lib包是一个java对象、xml、JSON互相转换的包。

1.将Java对象转换成 json字符串

Person p1=new Person();
p1.setName("sunshine");
p1.setAge(26);
String jsonStr=JSONObject.fromObject(p1).toString();
2.将Java 集合转换成 json字符串

        Person p1=new Person();p1.setName("A1");p1.setAge(26);
        Person p2=new Person();p2.setName("A2");p2.setAge(23);

        List personList=new ArrayList<Person>();
        personList.add(p1);
        personList.add(p2);

        Map personMap=new HashMap<String, Person>();
        personMap.put("p1", p1);
        personMap.put("p2", p2);

        //[{"age":26,"name":"A1"},{"age":23,"name":"A2"}]
        JSONArray.fromObject(personList).toString();
 JSONSerializer.toJSON(personList)

        //[{"p2":{"name":"A2","age":23},"p1":{"name":"A1","age":26}}]
        JSONArray.fromObject(personMap).toString();
 JSONSerializer.toJSON(personMap)
3.将json字符串转换成动态Java对象

 String jsonStr="[{\"name\":\"A2\",\"age\":23},{\"name\":\"A1\",\"age\":26}]";
        JSONArray ja=JSONArray.fromObject(jsonStr);

        for(int i=0;i<ja.size();i++){
            JSONObject jo= ja.getJSONObject(i); //转换成JSONObject对象
            System.out.println(jo.get("name"));

            Person p=(Person)JSONObject.toBean(jo,Person.class);    //转换成JavaBean
            System.out.println(p.getName()); 

        }
4.解决json中字段和java类的关键字冲突的问题,如果你的json中含有关键字和java的关键字冲突怎么解决。加上 @SerializedName("") ,加入json中有一个字段为abstract,你的java类中肯定不能有这个一个属性,解决方法。如下:

@SerializedName(" abstract")
public String abstracttext;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值