Gson是一個用于Java語言的Json解析器和生成器庫。Gson可以將Java對象轉換為Json格式的字符串以及將Json格式的字符串轉換為Java對象。
本文重點介紹Gson將Json格式的字符串轉換為Java對象。
Java中需要使用實體類來表示一個對象,Gson可以將Json格式的字符串轉換為Java實體類對象。
public class Person {
private String name;
private int age;
private List<String> hobbies;
//Getter和Setter方法省略
}
String jsonStr = "{\"name\":\"Tom\",\"age\":20,\"hobbies\":[\"reading\",\"music\"]}";
Gson gson = new Gson();
Person person = gson.fromJson(jsonStr,Person.class);
使用fromJson方法將Json字符串轉換為Person類型的Java對象。
需要注意的是,Json字符串中的字段名稱必須與實體類中的字段名稱一致,不然會出現轉換異常。同時,Json字符串的字段值類型也必須與實體類中的字段類型一致,否則也會出現轉換異常。
在Gson中還可以使用TypeToken來將Json字符串轉換為泛型類型的Java對象,如List等。
String jsonListStr = "[{\"name\":\"Tom\",\"age\":20,\"hobbies\":[\"reading\",\"music\"]},{\"name\":\"Mike\",\"age\":22,\"hobbies\":[\"swimming\",\"running\"]}]";
Type listType = new TypeToken<List<Person>>(){}.getType();
List<Person> personList = gson.fromJson(jsonListStr,listType);
上述代碼將Json格式的字符串轉換為一個List類型的對象。
Gson可以方便地將Json格式的字符串轉換為Java實體類對象,同時還具有比較完善的異常處理機制,在使用中需要注意Json字符串中字段名稱和字段值類型的一致性。