目录
JSON是一种轻量级数据交换格式,以Animal对象演示Gson和FastJson的解析方法
Animal对象
/**
* Animal实例
*/
public class Animal {
private String name;
private String info;
public Animal() {
}
public Animal(String name, String info) {
this.name = name;
this.info = info;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "name=" + name + ", info=" + info;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Animal animal = (Animal) o;
return Objects.equals(name, animal.name) && Objects.equals(info, animal.info);
}
@Override
public int hashCode() {
return Objects.hash(name, info);
}
}
一、Gson
1、下载
https://github.com/google/gson/
2、导入jar包
3、解析(对象转Json,Json转对象)
public static void main(String[] args) {
Animal eagle = new Animal("鹰酱", "强大的食肉动物之一。");
Animal rabbit = new Animal("兔子", "手撕杂毛鸟。");
//Gson
Gson gson = new Gson();//new一个Gson对象
String gJson = gson.toJson(eagle);//将鹰酱对象转为Json字符串
System.out.println(gJson);
Animal eagle2 = gson.fromJson(gJson, Animal.class);//将gJson代表的Json字符串转为Animal对象
System.out.println(eagle2);
}
此处gJson键(名字)值(冒号后面的)对里,若值是数组,则转换成集合后默认为ArrayList
结果:
{"name":"鹰酱","info":"强大的食肉动物之一。"}
name=鹰酱, info=强大的食肉动物之一。
二、FastJson
1.下载
https://github.com/alibaba/fastjson
2.导入jar包
3.解析(对象/数组转Json,Json转对象/集合)
public static void main(String[] args) {
Animal eagle = new Animal("鹰酱", "强大的食肉动物之一。");
Animal rabbit = new Animal("兔子", "手撕杂毛鸟。");
//FastJson
//对象
String fastJson = JSON.toJSONString(rabbit);//将兔子对象转为Json字符串
System.out.println(fastJson);
Animal rabbit2 = JSON.parseObject(fastJson,Animal.class);//将Json字符串转为Animal对象
System.out.println(rabbit2);
//集合
Animal[] animalList = new Animal[2];//创建Animal数组
animalList[0] = eagle;
animalList[1] = rabbit;
String fastJson2 = JSON.toJSONString(animalList);//将数组转换为Json对象
System.out.println(fastJson2);
List<Animal> list = JSON.parseArray(fastJson2,Animal.class);//将Json对象转换为list集合
System.out.println(list);
}
结果:
{"info":"手撕杂毛鸟。","name":"兔子"}
name=兔子, info=手撕杂毛鸟。
[{"info":"强大的食肉动物之一。","name":"鹰酱"},{"info":"手撕杂毛鸟。","name":"兔子"}]
[name=鹰酱, info=强大的食肉动物之一。, name=兔子, info=手撕杂毛鸟。]