Java中使用FastJSON进行对象的序列化和反序列化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中使用FastJSON进行对象的序列化和反序列化相关的知识,希望对你有一定的参考价值。
Java中使用FastJSON进行对象的序列化和反序列化
1.添加依赖,maven的pom.xml文件中添加以下依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2.FastJSON序列化和反序列化工具类
import java.util.List;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
// JSON/对象转换类
public class JsonUtils {
/**
* JSON字符串转换成对象
*/
public static <T> T jsonStringToObject(String jsonStr,Class<T> obj){
try{
return JSONObject.parseObject(jsonStr, obj);
}catch(Exception e){
System.out.println("将JSON串{}转换成 指定对象失败:"+jsonStr);
e.printStackTrace();
}
return null;
}
/**
* 对象转JSON
*/
public static <T> 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<T>对象转成json
*/
public static<T> String listToJsonString(List<T> objList){
try{
String json=JSONObject.toJSONString(objList);
return json;
}catch(Exception e){
System.out.println("将对象列表转成JSON串{}失败:"+objList.toString());
e.printStackTrace();
}
return "";
}
/**
* json转换成对象列表List<T>
*/
public static <T> List<T> jsonStringToList(String json,Class<T> 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<User> users=new ArrayList<User>();
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<User> list=JsonUtils.jsonStringToList(json, User.class);
System.out.println(list);
以上是关于Java中使用FastJSON进行对象的序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章