Java中使用FastJSON進行物件的序列化和反序列化
阿新 • • 發佈:2018-11-30
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);