Java 如何解析这个JSON字符串
我正试图将这个字符串解析成java,但我不断地出错Java 如何解析这个JSON字符串,java,android,json,Java,Android,Json,我正试图将这个字符串解析成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://
{"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值时出错。。。然后显示temp中的内容。有什么帮助吗?看起来“源”数组位于“结果”对象中。因此,您需要获取该对象,然后从中获取数组,如下所示:
JSONObject obj = new JSONObject(temp);
JSONObject result = obj.getJSONObject("result");
JSONArray array = result.getJSONArray("sources");
名为“sources”的数组有好几层。您需要向下遍历到json中
代码格式化程序有助于这方面的工作
json应该具有顶级对象,从那里您需要获得子对象。有关更多详细信息,请参见此项。好的,这更有意义,但如何进入这样的嵌套语句?这样地?JSONArray ar=obj.getaray(“结果”)@user987103什么是
getarray
?什么是“结果”
?我不知道您正在使用的确切库的详细信息(您还没有实际告诉我们,尽管我可能可以从包名中找到它)。通常,您会执行obj.get(“结果”).getArray(“源”)。请查看您的javadoc以了解方法名称的确切细节,我只是在使用org.json。。有一个更容易使用的方法吗?有很多方法,但是有很多关于堆栈溢出的问题来处理利弊。哪一行给出了错误,第二行或第三行(在原始代码中)就是这样,一旦我将临时字符串放入JSONObject,它就会抛出一个错误。我知道我必须进入一个嵌套结果,但它只是抛出那个错误。每次我将结果字符串放入JSONObject时,它都会抛出相同的异常
{
"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"
}
]
}
}