一、测试代码
测试类User:
package cays.fastjson;
import java.util.Date;
import java.util.List;
/**
* 用户类测试
* @create 2020/1/7
**/
public class User {
private String name;
private String password;
private double score;
private int age;
private Date startTime;
private Date endTime;
private List<String> objectList;
private String memo;
public User() {
}
public User(String name, String password, double score, int age, Date startTime, Date endTime, List<String> objectList, String memo) {
this.name = name;
this.password = password;
this.score = score;
this.age = age;
this.startTime = startTime;
this.endTime = endTime;
this.objectList = objectList;
this.memo = memo;
}
public User(String name, String password, double score, int age, Date startTime, Date endTime, String memo) {
this.name = name;
this.password = password;
this.score = score;
this.age = age;
this.startTime = startTime;
this.endTime = endTime;
this.memo = memo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public List<String> getObjectList() {
return objectList;
}
public void setObjectList(List<String> objectList) {
this.objectList = objectList;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
}
各个类型的转换:
package cays.fastjson;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.Date;
/**
* fastjson测试
* @create 2020/1/7
**/
public class FastjsonMain {
public static void main(String[] args) {
User user = new User("a", "a", 12.5, 11, new Date(), new Date(), new ArrayList<>(), "测试");
// 1. 将对象转化为JSON字符串
String userJsonStr = JSON.toJSONString(user);
System.out.println("User对象JSON字符串:" + userJsonStr);
// 2. 将JSON字符串转换为Java对象
user = JSON.parseObject(userJsonStr, User.class);
System.out.println("字符串转Java对象后用户名:" + user.getName());
// 3. 将JSON字符串转化为JSON对象,都是先判断是否是JSONObject,最后调用(JSONObject) JSON.toJSON(obj);
JSONObject userJsonObject = JSON.parseObject(userJsonStr);
System.out.println("将JSON字符串转化为JSON对象用户姓名:" + userJsonObject.getString("name"));
System.out.println("将JSON字符串转化为JSON对象用户分数:" + userJsonObject.getDouble("score"));
System.out.println("将JSON字符串转化为JSON对象用户开始时间:" + userJsonObject.getDate("startTime"));
userJsonObject = JSONObject.parseObject(userJsonStr);
System.out.println("将JSON字符串转化为JSON对象用户姓名:" + userJsonObject.getString("name"));
System.out.println("将JSON字符串转化为JSON对象用户分数:" + userJsonObject.getDouble("score"));
System.out.println("将JSON字符串转化为JSON对象用户开始时间:" + userJsonObject.getDate("startTime"));
userJsonObject = JSONArray.parseObject(userJsonStr);
System.out.println("将JSON字符串转化为JSON对象用户姓名:" + userJsonObject.getString("name"));
System.out.println("将JSON字符串转化为JSON对象用户分数:" + userJsonObject.getDouble("score"));
System.out.println("将JSON字符串转化为JSON对象用户开始时间:" + userJsonObject.getDate("startTime"));
// 4. 将JSONObject转Java对象,需要空构造方法和所有属性构造方法
user = JSON.toJavaObject(userJsonObject, User.class);
System.out.println("将JSONObject转Java对象后用户名:" + user.getName());
// 5. 将Java对象转换为JSON对象
userJsonObject = (JSONObject) JSON.toJSON(user);
System.out.println("将Java对象转换为JSON对象用户姓名:" + userJsonObject.getString("name"));
System.out.println("将Java对象转换为JSON对象用户分数:" + userJsonObject.getDouble("score"));
System.out.println("将Java对象转换为JSON对象用户开始时间:" + userJsonObject.getDate("startTime"));
// 6. 字符串转化为array
String arrayStr = "[\"李白\",\"杜甫\",\"王安石\"]";
JSONArray jsonArray = JSONArray.parseArray(arrayStr);
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
jsonArray = JSON.parseArray(arrayStr);
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
jsonArray = JSONObject.parseArray(arrayStr);
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
}
}