FastJson使用总结
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
1. toJSONString()
将对象转换成Json
JSON.toJSONString(对象);
2. parseObject()
将Json串转换成java对象
//对象是单个元素
JSON.parseObject(json,XXX.CLASS);
//对象包含多个元素
JSON.parseArray(json,XXX.CLASS);
3. 测试
对象是单个元素:
Map<String,Integer> map = new HashMap<>();
map.put("zhangsan", 18);
map.put("lisi", 28);
map.put("wangwu", 38);
//map-->json
String jsonString2 = JSON.toJSONString(map);
//json-->map
Map<String,Integer> map2 =JSON.parseObject(jsonString2,Map.class);
对象包含多个元素:
List<String> stringList = new ArrayList<>();
stringList.add("aaa");
stringList.add("bbb");
stringList.add("ccc");
stringList.add("ddd");
//list-->json
String jsonString = JSON.toJSONString(stringList);
//json-->list
List<String> list =JSON.parseArray(jsonString,String.class);
JavaBean----->>>Json
User.java:
@Data
public class User {
private String name;
private String age;
public User(String name, String age) {
super();
this.name = name;
this.age = age;
}
}
UserGroup:
@Data
public class UserGroup {
private String name;
List<User> userList = new ArrayList<>();
Test:
public class Test {
public static void main(String[] args) {
// 构建用户geust
User guestUser = new User("guest","18");
// 构建用户root
User rootUser = new User("root","28");
// 构建用户组对象
UserGroup group = new UserGroup();
group.setName("admin");
group.getUserList().add(guestUser);
group.getUserList().add(rootUser);
// 用户组对象转JSON串
String jsonString = JSON.toJSONString(group);
System.out.println("jsonString:" + jsonString);
// JSON串转用户组对象
UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);
System.out.println("group2:" + group2);
// 构建用户对象数组
User[] users = new User[2];
users[0] = guestUser;
users[1] = rootUser;
// 用户对象数组转JSON串
String jsonString2 = JSON.toJSONString(users);
System.out.println("jsonString2:" + jsonString2);
// JSON串转用户对象列表
List<User> users2 = JSON.parseArray(jsonString2, User.class);
System.out.println("users2:" + users2);
}
}