Java中使用FastJSON进行对象的序列化和反序列化
1.添加依赖,maven的pom.xml文件中添加以下依赖
com.alibaba
fastjson
1.2.47
2.FastJSON序列化和反序列化工具类
import java.util.List;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
// JSON/对象转换类
public class JsonUtils {
/**
* JSON字符串转换成对象
*/
public static T jsonStringToObject(String jsonStr,Class obj){
try{
return JSONObject.parseObject(jsonStr, obj);
}catch(Exception e){
System.out.println("将JSON串{}转换成 指定对象失败:"+jsonStr);
e.printStackTrace();
}
return null;
}
/**
* 对象转JSON
*/
public static String objectToJson(T obj){
try{
String json=JSONObject.toJSONString(obj);
return json;
}catch(Exception e){
System.out.println("将指定对象转成JSON串{}失败:"+obj.toString());
e.printStackTrace();
}
return "";
}
/**
* List对象转成json
*/
public static String listToJsonString(List objList){
try{
String json=JSONObject.toJSONString(objList);
return json;
}catch(Exception e){
System.out.println("将对象列表转成JSON串{}失败:"+objList.toString());
e.printStackTrace();
}
return "";
}
/**
* json转换成对象列表List
*/
public static List jsonStringToList(String json,Class obj){
try{
return JSONArray.parseArray(json, obj);
}catch(Exception e){
System.out.println("将JSON串{}转成对象列表失败:"+json);
e.printStackTrace();
}
return null;
}
/*
* 将JSON串转换为JSONOBJECT
*/
public static JSONObject stringTOJSONObject(String json){
JSONObject jsonObject = null;
try {
jsonObject = JSONObject.parseObject(json);
} catch (Exception e) {
System.out.println("JSON串{} 转换成 JsonObject失败"+json);
}
return jsonObject;
}
}
3.使用
(1)序列化
List users=new ArrayList();
for(int i=0;i<20;i++){
User user=new User();
user.setName("FastJSON"+i);
user.setAge(20+i);
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
user.setBirthday(dateformat.parse("1991-10-01"));
user.setEmail("12345678"+i+"@qq.com");
// 序列化单个对象
String json=JsonUtils.objectToJson(user);
users.add(user);
// 序列化对象列表
// String json=JsonUtils.listToJsonString(users);
}
(2)反序列化
// 反序列化单个对象
User u=JsonUtils.jsonStringToObject(json, User.class);
System.out.println(u.toString());
// 将JSON串转换为JSONOBJECT
JSONObject js=JsonUtils.stringTOJSONObject(json);
System.out.println(js);
// 反序列化对象列表
List list=JsonUtils.jsonStringToList(json, User.class);
System.out.println(list);