在Java中,我們常常需要將對象序列化成JSON格式,或者將JSON格式的字符串反序列化成Java對象。這時候我們就可以使用JSON庫來實現。JSON庫中,常常會用到泛型序列化,讓我們來一探究竟。
首先,我們需要導入JSON庫,比如使用Fastjson庫:
import com.alibaba.fastjson.JSON;
然后,我們定義一個Java實體類:
public class User { private String name; private int age; // 省略getter和setter方法 }
現在我們來看一下如何將這個User對象序列化成JSON格式的字符串:
User user = new User(); user.setName("Tom"); user.setAge(18); String jsonString = JSON.toJSONString(user); System.out.println(jsonString);
上述代碼中,我們使用了JSON.toJSONString方法將User對象序列化成JSON格式的字符串,然后打印輸出。
接下來,我們來看一下如何將JSON格式的字符串反序列化成User對象:
String jsonString = "{\"name\":\"Tom\",\"age\":18}"; User user = JSON.parseObject(jsonString, User.class); System.out.println(user.getName() + " " + user.getAge());
上述代碼中,我們使用了JSON.parseObject方法將JSON格式的字符串反序列化成User對象,然后打印輸出。
在實際場景中,我們可能會遇到一些復雜的數據結構,這時候就需要使用泛型序列化。比如我們定義一個泛型類:
public class Result{ private int code; private String message; private T data; // 省略getter和setter方法 }
然后,在我們的業務邏輯中,我們可能會返回一些Result對象,這時候我們就需要將Result對象序列化成JSON格式的字符串:
Resultresult = new Result<>(); result.setCode(200); result.setMessage("請求成功"); User user = new User(); user.setName("Tom"); user.setAge(18); result.setData(user); String jsonString = JSON.toJSONString(result); System.out.println(jsonString);
最后,我們來看一下如何將JSON格式的字符串反序列化成Result對象:
String jsonString = "{\"code\":200,\"message\":\"請求成功\",\"data\":{\"name\":\"Tom\",\"age\":18}}"; Resultresult = JSON.parseObject(jsonString, new TypeReference >(){}); System.out.println(result.getCode() + " " + result.getMessage() + " " + result.getData().getName() + " " + result.getData().getAge());
上述代碼中,我們使用了JSON.parseObject方法將JSON格式的字符串反序列化成Result對象,需要注意的是,我們需要使用TypeReference來指定泛型類型。
以上就是Java中JSON庫中泛型序列化的簡介和使用。