Java之fastjson学习

本文介绍如何使用FastJSON进行Java对象与JSON之间的转换,包括对象序列化为JSON字符串及JSON字符串反序列化为Java对象的过程。

我刚学会写稍微复杂一点点的接口,还在沾沾自喜中,被大哥鄙视了一顿,说太简单,让我立马学fastjson,据说是最快最好用的。然后我就赶紧学了

fastjson jar包下载


上代码:

person实体类:

public class Person {
	private int age;
    private String name;
     
    public Person(){
         
    }
     
    public Person(int age,String name){
        this.age=age;
        this.name=name;
    }
     
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}


main:
import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class TestFastJson {

	public static void main(String[] args) {
        // TODO Auto-generated method stub
         
        Person json = new Person(23,"Billy Lu");
        List<Person> list = new ArrayList<Person>();
        list.add(json);
        list.add(new Person(22,"Bruce Lu"));
        //将集合或者对象序例化成JSON
        System.out.println("line 18:   "+JSON.toJSON(json));
        System.out.println("line 19:   "+ JSON.toJSON(list) );
        //Json串反序列化成对象
        Person person = JSON.parseObject("{\"name\":\"Billy Lu\",\"age\":23}", Person.class);
        System.out.printf("line 22:   "+"name:%s,age:%d\n",person.getName(),person.getAge());
         
        String str = "[{\"name\":\"Billy Lu\",\"age\":23},{\"name\":\"Bruce Lu\",\"age\":22}]";
        //数组对象反序列化成集合
        List<Person> listPerson = JSON.parseArray(str,Person.class);
         
        for(Person item : listPerson){
            System.out.println("line 29:   "+ item.getName() );
            System.out.println("line 30:   "+ item.getAge());
        }
         
        //没有对象直接解析JSON对象
        JSONObject jobj = JSON.parseObject("{\"name\":\"Billy Lu\",\"age\":23}");
        System.out.printf("line 35:   "+"name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age"));
         
        //没有对象直接解析JSON数组
        JSONArray jarr = JSON.parseArray("[{\"name\":\"Billy Lu\",\"age\":23},{\"name\":\"Bruce Lu\",\"age\":22}]");
         
        for(int i=0,len=jarr.size();i<len;i++){
            JSONObject temp=  jarr.getJSONObject(i);
            System.out.printf("line 42:   "+"name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age"));
        }
         
        for(Object obj:jarr){
            System.out.println("line 46:   "+obj.toString());
        }
         
    }

}


结果:

line 18:   {"age":23,"name":"Billy Lu"}
line 19:   [{"age":23,"name":"Billy Lu"},{"age":22,"name":"Bruce Lu"}]
line 22:   name:Billy Lu,age:23
line 29:   Billy Lu
line 30:   23
line 29:   Bruce Lu
line 30:   22
line 35:   name:Billy Lu,age:23
line 42:   name:Billy Lu,age:23
line 42:   name:Bruce Lu,age:22
line 46:   {"age":23,"name":"Billy Lu"}
line 46:   {"age":22,"name":"Bruce Lu"}



结论:确实好用!




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值