2013-08-23 57 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。 //很多方法