Gson是Google推出的一個Java庫,用于解析JSON格式的數據。通過使用Gson,Java程序可以將JSON數據轉換為對象,從而實現方便的數據讀取和操作。
Gson提供了多種方法來解析JSON數據。其中最常用的是通過fromJson()方法將JSON數據轉換為Java對象。使用時需要定義一個Java類來表示JSON數據的結構(字段名和數據類型)。然后調用Gson的fromJson()方法,將JSON字符串和Java類類型作為參數傳入即可。
// 定義JSON數據結構對應的Java類 class Person { String name; int age; boolean isMale; } // JSON字符串 String jsonString = "{ \"name\": \"Tom\", \"age\": 20, \"isMale\": true }"; // 解析JSON字符串 Gson gson = new Gson(); Person person = gson.fromJson(jsonString, Person.class);
如果JSON數據比較復雜,可以使用Gson提供的JsonReader類來逐個讀取JSON數據。JsonReader類提供了多種方法來讀取JSON數據,例如beginObject()、nextName()、beginArray()、nextInt()等。通過這些方法,可以解析任意復雜的JSON數據。
// 讀取包含多個Person對象的JSON數據 String jsonString = "{ \"persons\": [{ \"name\": \"Tom\", \"age\": 20, \"isMale\": true }, { \"name\": \"John\", \"age\": 25, \"isMale\": true }] }"; // 解析JSON數據 Gson gson = new Gson(); JsonReader reader = new JsonReader(new StringReader(jsonString)); reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("persons")) { reader.beginArray(); while (reader.hasNext()) { Person person = gson.fromJson(reader, Person.class); System.out.println(person.name + " " + person.age + " " + person.isMale); } reader.endArray(); } } reader.endObject();
總之,使用Gson解析JSON數據十分方便和靈活,可以根據不同的需求選擇不同的方法進行解析。