0

JSON 応答を解析しようとしています。以下のような JSON 応答を取得しています。

"libraryLastModified" : "2012-10-10 03:57:26",
"playlists" : { "10063" : { "id" : "10063",
       "name" : "Favorites",
       "songs" : [ "10006134",
           "10006053",
           "10006274",
           "10006167",
        ]
    },
    "10157" : { "id" : "10157",
        "name" : "80s",
        "songs" : [ "10006694",
            "10006695",
            "10006697",
            "10006699",
            "10006698",
        ]
    }

ID と名前の値にアクセスするにはどうすればよいですか?

4

3 に答える 3

3

私はGSONが大好き です。このシナリオでは、2 つのクラスを作成します。

public class PLayList {
 private int id;
 private String name;
 private List<Integer> songs;
 //getters and setters
}

public class Library {
 private Date libraryLastModified;
 private List<Playlist> playlists;
 //getters and setters
}

それからあなたは書くことができます

 Gson gson = new Gson();
 Library result = gson.fromJson(theInput, Library.class);

プレイリストは key:value として提供されるため、カスタム デシリアライザーを作成する必要があります。その方法については、キー値をカスタム オブジェクトに逆シリアル化するGSONを参照してください。

于 2012-10-11T11:38:34.037 に答える
1

疑似コードで。JSONメソッドを正確に覚えていません

JSONObject mainObj = parseJson
JSONObject playLists = mainObj.getJSONObject("playlists")
JSONObject myList = playList.getJSONObject("10063")

id = myList.getString("id")

複数のリストを反復処理するには、プレイリストを JSONArray に変換してから、それを反復処理することをお勧めします。それができない場合は、Android JSON API を確認し、JSONObject のすべてのキーを取得してからキーを反復処理する方法を確認してください。

for(int i=0;i<playlistKeys.length;i++){
  playlistObj = playLists.getJSONObject(playlistsKey[i])
}
于 2012-10-11T11:39:52.703 に答える
0

グーグルGsonを使用してください。 http://code.google.com/p/google-gson/

class Response{
Date libraryLastModified;
Playlist []playlists;

class Playlist{
    Long id;
    String name;
    Long[] songs;
}

}
String _response=... //Your response from web
Response response = new GsonBuilder().setDateFormat("yyyy-MM-dd' 'HH:mm:ss").create().fromJson(_response, Response.class);

String songName = response.playlists[0].name;
于 2012-10-11T11:44:05.367 に答える