我正在尝试将此字符串解析为java,但我不断收到错误。
{"id":1,"jsonrpc":"2.0","result":{"limits":{"end":3,"start":0,"total":3},"sources":[{"file":"/media/storage/media/re Music/","label":"re Music"},{"file":"/media/storage/media/ra Music/","label":"ra Music"},{"file":"addons://sources/audio/","label":"Music Add-ons"}]}}
当我使用此代码时......
String temp = //json code returned from up above
JSONObject obj = new JSONObject(temp);
JSONArray array = obj.getJSONArray("sources");
我收到一个错误,说org.json.JSONObject Value ...然后显示temp中的内容。有什么帮助吗?
答案 0 :(得分:2)
名为“sources”的数组有几个级别。你需要遍历json。
代码格式化程序帮助解决这个问题...
http://jsonformatter.curiousconcept.com/
{
"id":1,
"jsonrpc":"2.0",
"result":{
"limits":{
"end":3,
"start":0,
"total":3
},
"sources":[
{
"file":"/media/storage/media/re Music/",
"label":"re Music"
},
{
"file":"/media/storage/media/ra Music/",
"label":"ra Music"
},
{
"file":"addons://sources/audio/",
"label":"Music Add-ons"
}
]
}
}
答案 1 :(得分:0)
看起来“sources”数组位于“result”对象中。因此,您需要获取该对象,然后从中获取数组:
JSONObject obj = new JSONObject(temp);
JSONObject result = obj.getJSONObject("result");
JSONArray array = result.getJSONArray("sources");
答案 2 :(得分:0)
你的json应该有顶级对象,从那里你需要获得子对象。有关详细信息,请参阅此link 。