Gson是Google開源的用于處理json數據的Java庫。它可以實現Java對象和json字符串之間的相互轉換,使得在Java應用中使用json數據變得更加方便。
Gson主要提供了兩個重要的類:Gson和JsonElement。Gson類中提供了fromJson()和toJson()兩個方法,用于將Java對象轉換為json字符串和將json字符串轉換為Java對象。JsonElement類則表示json數據中的一個元素,比如一個json對象或json數組,可以通過它來訪問和操作json數據。
Gson gson = new Gson(); String json = "{\"name\":\"Tom\", \"age\":18}"; Person person = gson.fromJson(json, Person.class); System.out.println(person.getName()); //Tom System.out.println(person.getAge()); //18 Person person2 = new Person("Jerry", 20); String json2 = gson.toJson(person2); System.out.println(json2); //{"name":"Jerry","age":20}
Gson支持多種類型的數據轉換,包括基本類型、復合類型和泛型。對于復合類型和泛型,Gson提供了TypeToken來解決類型擦除的問題。
String json = "[{\"name\":\"Tom\", \"age\":18},{\"name\":\"Jerry\", \"age\":20}]"; Type listType = new TypeToken>(){}.getType(); List
persons = gson.fromJson(json, listType); for (Person person : persons) { System.out.println(person.getName() + " " + person.getAge()); }
此外,Gson還支持自定義序列化和反序列化的規則。通過實現JsonSerializer和JsonDeserializer接口,可以對Java對象和json數據做更細致的控制。
綜上,Gson是一個簡單易用、功能強大的Java json處理庫,已經成為Java開發中使用json的主流選擇之一。