2 hxn 217 hxn_217 于 2012.12.25 17:55 提问

如何解析复杂的json响应

我试图解析json响应,现在获得了如下的json响应。

 "libraryLastModified" : "2012-12-25 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 和name values?
谢谢大家给与建议。

2个回答

cytown
cytown   2012.12.25 18:51
已采纳

建议不要让服务器返回这样的json,一般来说,不会把value当成key来传输。

如果一定要这样做,那就要用JSONObject.keys来返回一个Iterator,里面是存储的keyname的String,然后遍历其,根据其String获得响应的value。

nana4ever
nana4ever   2013.01.08 14:06

在pseudocode中

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])
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!