在fastjson序列化和反序列化的时候,JSON是最常用的类,下面就来看看JSON类的使用
1.序列化
package com.shxt.test01;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.shxt.model.Group;
public class 序列化 {
public static void main(String[] args) {
Group group = new Group();
group.setId(1);
group.setName("一年级");
// toJSONObject, javabean --> json
JSONObject object = (JSONObject)JSON.toJSON(group);
System.out.println(object.toJSONString());
// list --> json
List<Group> groups = new ArrayList<>();
for (int i = 0; i < 3; i++) {
Group group2 = new Group();
group2.setId(i+1);
group2.setName((i+1)+"年纪");
groups.add(group2);
}
System.out.println(JSON.toJSON(groups));
// map --> json
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", 1);
map.put("name", "一年级");
System.out.println(JSON.toJSON(map));
}
}
2.反序列化
package com.shxt.test01;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.shxt.model.Group;
public class 反序列化 {
public static void main(String[] args) {
String group = "{\"name\":\"一年级\",\"id\":1}";
String groups = "[{\"name\":\"1年纪\",\"id\":1},{\"name\":\"2年纪\",\"id\":2},{\"name\":\"3年纪\",\"id\":3}]";
// json --> javabean
Group g = JSON.parseObject(group, Group.class);
System.out.println(g);
// list --> json
List<Group> gs = (List<Group>)JSON.parseObject(groups,new TypeReference<List<Group>>(){});
for (Group lg : gs) {
System.out.println(lg.toString());
}
String map = "{\"name\":\"一年级\",\"id\":1}";
Map<String,Object> m= JSON.parseObject(map, Map.class);
System.out.println(m);
}
}
package com.shxt.model;
public class Group {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Group [id=" + id + ", name=" + name + "]";
}
}