如何使用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); ...