2013-08-23 56 views
2

我会去解析使用谷歌GSON库JSON吗?我返回的JSON的一个示例是:如何阅读与Gson的Json

[ 
    { 
     "title": "Down", 
     "album": "Down", 
     "length": 212.61, 
     "artist": "Jay Sean" 
    }, 
    { 
     "title": "Come to Me (Peace)", 
     "album": "Growing Pains", 
     "length": 301.844, 
     "artist": "Mary J Blige" 
    } 
] 

这是一个json对象数组,是吗?我将如何去与Gson解压缩?这是即时通讯尝试,但我得到空指针例外:

 JsonElement jelement = new JsonParser().parse(jsonInfo); 
     JsonObject jobject = jelement.getAsJsonObject(); 
     jobject = jobject.getAsJsonObject(""); 
     JsonArray jarray = jobject.getAsJsonArray(""); 
     jobject = jarray.get(0).getAsJsonObject(); 
     String result = jobject.get("title").toString(); 

回答

4

您必须为List创建一个Type实例。

class MyObj { 
     String title; 
     String album; 
     double length; 
     String artist; 
    } 

    String json = "[\n" + 
      " {\n" + 
      "  \"title\": \"Down\",\n" + 
      "  \"album\": \"Down\",\n" + 
      "  \"length\": 212.61,\n" + 
      "  \"artist\": \"Jay Sean\"\n" + 
      " },\n" + 
      " {\n" + 
      "  \"title\": \"Come to Me (Peace)\",\n" + 
      "  \"album\": \"Growing Pains\",\n" + 
      "  \"length\": 301.844,\n" + 
      "  \"artist\": \"Mary J Blige\"\n" + 
      " }\n" + 
      "]"; 
    Type listType = new TypeToken<List<MyObj>>() {}.getType(); 
    List<MyObj> list = new Gson().fromJson(json, listType); 
    System.out.println(new Gson().toJson(list)); 
+0

啊,所以我确实需要一个对象。谢谢 –

0

Gson gson = new Gson(); gson。 //很多方法