在Java開發(fā)中,常常會(huì)用到將Java對(duì)象轉(zhuǎn)換為JSON格式(即序列化)的操作,這時(shí)就需要用到gson轉(zhuǎn)json工具類。
public class GsonUtil { private static final Gson gson = new Gson(); /** * 將對(duì)象轉(zhuǎn)化為JSON格式字符串 * @param obj 待轉(zhuǎn)化的對(duì)象 * @return JSON格式字符串 */ public static String toJson(Object obj) { return gson.toJson(obj); } /** * 將JSON格式字符串轉(zhuǎn)化為指定的對(duì)象實(shí)例 * @param jsonString JSON格式字符串 * @param typeOfT 轉(zhuǎn)化的目標(biāo)對(duì)象類型 * @return 轉(zhuǎn)化后的目標(biāo)對(duì)象實(shí)例 */ public staticT fromJson(String jsonString, Class typeOfT) { return gson.fromJson(jsonString, typeOfT); } }
上述代碼中,我們使用靜態(tài)變量初始化一個(gè)Gson實(shí)例,然后提供了toJson和fromJson兩個(gè)方法,分別用于將Java對(duì)象轉(zhuǎn)化為JSON格式字符串,以及將JSON格式字符串轉(zhuǎn)化為Java對(duì)象實(shí)例。
使用該工具類非常簡(jiǎn)單,只需要在要進(jìn)行序列化和反序列化的對(duì)象上添加注解即可:
public class User { @SerializedName("userId") private String id; private String name; private int age; //...省略getter和setter方法 }
在上面的代碼中,使用了@SerializedName注解將id屬性映射到了JSON格式中的userId字段,使用該工具類進(jìn)行序列化和反序列化時(shí),就可以自動(dòng)將注解映射到對(duì)應(yīng)的JSON字段中了。
總之,gson轉(zhuǎn)json工具類可以方便地將Java對(duì)象轉(zhuǎn)換為JSON格式,簡(jiǎn)化了Java應(yīng)用中對(duì)于序列化和反序列化的操作。