如何解析这个JSON字符串
我想解析这个字符串到java中,但我不断收到错误。如何解析这个JSON字符串
{"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值...,然后显示的是在温度。任何帮助?
命名为“源”的阵列是几个层次深。你需要遍历到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"
}
]
}
}
它看起来像“源”数组是在“结果”对象。所以,你需要得到该对象,然后从这样得到的数组:
JSONObject obj = new JSONObject(temp);
JSONObject result = obj.getJSONObject("result");
JSONArray array = result.getJSONArray("sources");
每次我把结果字符串放入一个JSONObject中,它会抛出相同的异常 – 2012-02-10 22:52:32
你能显示更新的源代码吗? – CaseyB 2012-02-10 23:12:36
您的JSON应该有*对象,从那里你需要获得子对象。有关更多详细信息,请参阅此link。
尽管如此,一旦我将该临时字符串放入JSONObject中,它会引发错误。我知道我必须进入嵌套结果,但它只是抛出该错误。 – 2012-02-10 22:50:48
好吧,这更有意义,但如何进入这样的嵌套语句? 是否这样? JSONArray ar = obj.getaray(“results”) – 2012-02-10 22:46:35
@ user987103 getarray是什么?什么是“结果”? – 2012-02-10 22:49:34
我不知道你正在使用的确切库的细节,(你可能没有真正地告诉我们,尽管我可能从包名中找出它)。通常,你会做obj.get(“result”)。getArray(“sources”)。检查你的javadoc的方法名称的确切细节 – Gus 2012-02-10 22:50:59