如何使用Gson反序列化JSON数组

我想使用Gson反序列化JSON数组。 我试图这样做,但我不能这样做。

JSON数组:

[ {"ID":1,"Title":"Lion","Description":"bla bla","ImageURL":"http:\/\/localhost\/lion.jpg"}, {"ID":1,"Title":"Tiger","Description":"bla bla","ImageURL":"http:\/\/localhost\/tiger.jpg"} ] 

我从PHP脚本中获取JSON数组:

 $array = array ( array ( 'ID' => 1 , 'Title' => 'Lion' , 'Description' => 'bla bla' , 'ImageURL' => 'http:\/\/localhost\/lion.jpg' ) , array ( 'ID' => 2 , 'Title' => 'Tiger' , 'Description' => 'bla bla' , 'ImageURL' => 'http:\/\/localhost\/tiger.jpg' ) , ); echo json_encode ($array); 

要反序列化JSONArray,您需要使用TypeToken。 您可以从GSON用户指南中了解更多相关信息。 示例代码:

 @Test public void JSON() { Gson gson = new Gson(); Type listType = new TypeToken>(){}.getType(); // In this test code i just shove the JSON here as string. List asd = gson.fromJson("[{'name':\"test1\"}, {'name':\"test2\"}]", listType); } 

如果您有JSONArray,那么您可以使用

 ... JSONArray jsonArray = ... gson.fromJson(jsonArray.toString(), listType); ...