fastJson是阿里巴巴的一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
fastjson-1.2.4.jar 下载
@JSONField(serialize = false),忽略某个字段;在实体类的get方法上添加。
@JSONField(name = "id"),可以设置转成json后的别名;添加在字段上。
@JSONField (format="yyyy-MM-dd HH:mm:ss"),设置时间类型的格式化;添加在字段上。
注意:实体类需要实现一个无参的构造方法!
package fastjsonTest;
public class Person {
private String name;
private String age;
private String gender;
public Person() {
super();
}
public Person(String name, String age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Person [age=" + age + ", gender=" + gender + ", name=" + name
+ "]";
}
}
//实体类转json
Person p = new Person("小王","18","男");
String personJson = JSON.toJSONString(p);
System.out.println(personJson);
//{"age":"18","gender":"男","name":"小王"}
//实体类集合转json
List personList = new LinkedList();
personList.add(new Person("小王","18","男"));
personList.add(new Person("小帅","19","男"));
personList.add(new Person("小哥","20","男"));
String jsonList = JSON.toJSONString(personList);
System.out.println(jsonList);
/**
* [{"age":"18","gender":"男","name":"小王"},
* {"age":"19","gender":"男","name":"小帅"},
* {"age":"20","gender":"男","name":"小哥"}]
*/
//单个json转实体类
Person fromJson = JSON.parseObject(personJson, Person.class);
System.out.println(fromJson);
//Person [age=18, gender=男, name=小王]
//集合json转List实体类
List fromJsonList = JSON.parseArray(jsonList,Person.class);
System.out.println(fromJsonList);
/**
* [Person [age=18, gender=男, name=小王],
* Person [age=19, gender=男, name=小帅],
* Person [age=20, gender=男, name=小哥]]
*/
//单个json转Map
Map map = JSON.parseObject(personJson,Map.class);
System.out.println(map);
//{name=小王, age=18, gender=男}
//集合json转List
List listMap = JSON.parseArray(jsonList, Map.class);
System.out.println(listMap);
/**
* [{name=小王, age=18, gender=男},
* {name=小帅, age=19, gender=男},
* {name=小哥, age=20, gender=男}]
*/