Gson是Google公司開發的一款輕量級Java庫,用于簡便地將Java對象轉化成JSON格式或從JSON格式轉化為Java對象。在開發中,我們經常需要將一些返回的Json串或參數Json串轉化成Java實體對象,這里介紹Gson的使用方法。
// 假設有以下Json串 String jsonStr = "{\"name\":\"tom\",\"age\":18,\"gender\":\"male\"}"; // 創建Gson對象 Gson gson = new Gson(); // 解析Json串為Java對象 Person person = gson.fromJson(jsonStr, Person.class); // 現在我們就可以使用Person對象中的各個字段了 System.out.println(person.getName()); // tom System.out.println(person.getAge()); // 18
上述代碼中,我們首先創建一個Gson對象,然后使用fromJson()方法將Json串解析成Java對象。fromJson()方法的第一個參數為Json字符串,第二個參數為Java對象的類類型。Gson會自動將Json串中的屬性與Java對象中的屬性匹配,如果屬性名相同,就會自動將Json串的屬性值賦值給Java對象的屬性。解析完成后,我們就可以通過對象的getter方法獲取到解析后的值。
如果Json串中屬性名與Java對象中的屬性名不相同,則可以使用@SerializedName注解來進行匹配。例如,Json串中的屬性名為gender,而Java對象中的屬性名為sex,則可以使用以下注解:
public class Person { private String name; private int age; @SerializedName("gender") private String sex; // getter和setter方法省略 }
除了fromJson()方法,還有toJson()方法可以將Java對象轉換為Json串,方法簽名如下:
public String toJson(Object src)
使用方法如下:
Person person = new Person("tom",18,"male"); String jsonStr = gson.toJson(person); System.out.println(jsonStr); // {"name":"tom","age":18,"gender":"male"}
上述代碼中,我們將Java對象Person轉換為Json串,toJson()方法的參數為Java對象。轉換完成后,我們就可以得到對應的Json串。