Gson是Google官方提供的一款用于操作Json的Java處理工具庫,它可以自動解析json字符串,并將其中的數(shù)據(jù)轉化為對應的Java對象。其中,解析json嵌套list是一個常見的需求,下面是一個例子:
{ "name": "apple", "color": "red", "sizes": [ { "size": "small", "price": 1.0 }, { "size": "medium", "price": 1.5 }, { "size": "large", "price": 2.0 } ] }
以上是一個描述蘋果的json字符串,其中sizes是一個嵌套了三個元素的list。如果要解析這個字符串,我們可以在Java中定義一個對應的類:
public class Fruit { private String name; private String color; private List<Size> sizes; // getter & setter } public class Size { private String size; private double price; // getter & setter }
通過在Fruit類中定義List<Size> sizes屬性,我們可以將Json中的sizes數(shù)組轉為對應的Java List對象。
解析Json字符串到Java對象可以使用Gson的fromJson方法,實現(xiàn)方式如下:
Gson gson = new Gson(); Fruit fruit = gson.fromJson(jsonStr, Fruit.class);
上面的代碼會讀取jsonStr字符串,將其中的數(shù)據(jù)自動轉化為Fruit對象并返回。
要注意的是,經(jīng)過解析后fruit對象中的sizes屬性已經(jīng)轉化為了List<Size>類型,可以直接通過getSizes方法獲取到這個List。
List<Size> sizes = fruit.getSizes(); for(Size size: sizes) { System.out.println(size.getSize() + " - " + size.getPrice()); }
上述代碼中,我們使用了foreach循環(huán)來遍歷Fruit對象中的sizes List。通過調用Size對象的getSize和getPrice方法,我們可以獲取到每個元素的屬性值。
這樣,我們就成功地解析了一個嵌套了List的Json字符串,并將其中的數(shù)據(jù)轉化為了對應的Java對象。