Gson是Google開(kāi)源的JSON序列化/反序列化工具庫(kù),能夠?qū)ava對(duì)象轉(zhuǎn)化為JSON字符串,也能將JSON字符串轉(zhuǎn)換為Java對(duì)象。下面我們就用Gson將JSON字符串轉(zhuǎn)換為Java集合對(duì)象。
Gson gson = new Gson(); ListpersonList = new ArrayList (); String json = "[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Mike\",\"age\":22},{\"name\":\"Jerry\",\"age\":25}]"; Type type = new TypeToken >(){}.getType(); personList = gson.fromJson(json, type);
上面的代碼中,我們先創(chuàng)建了一個(gè)Gson對(duì)象,然后定義了一個(gè)Person類(lèi),并創(chuàng)建了一個(gè)List集合對(duì)象。我們?cè)诮酉聛?lái)的代碼中使用一段JSON字符串來(lái)進(jìn)行數(shù)據(jù)轉(zhuǎn)換。注意,字符串中的屬性名必須與Person類(lèi)中的屬性名完全一致。
接著,我們使用Gson的fromJson方法將JSON字符串轉(zhuǎn)換為Java對(duì)象,需要指定轉(zhuǎn)換成的集合類(lèi)型,這里使用了TypeToken來(lái)指定集合中每個(gè)元素的類(lèi)型。最終我們得到了一個(gè)包含了三個(gè)Person對(duì)象的List集合。
如果不借助TypeToken,我們可以使用Java的反射機(jī)制來(lái)指定集合中每個(gè)元素的類(lèi)型。代碼如下:
ListpersonList = new ArrayList (); String json = "[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Mike\",\"age\":22},{\"name\":\"Jerry\",\"age\":25}]"; personList = gson.fromJson(json, personList.getClass());
以上就是使用Gson進(jìn)行JSON轉(zhuǎn)集合的基本方法,建議在實(shí)際開(kāi)發(fā)中合理應(yīng)用。同時(shí),對(duì)于Java對(duì)象轉(zhuǎn)換為JSON字符串也同樣適用。具體使用方法可以參考Gson的官方文檔。