我使用一个名为JSON的库JSONObject(如果需要,我不介意切换).
我知道如何迭代JSONArrays,但是当我从Facebook解析JSON数据时,我没有得到数组,只有a JSONObject,但我需要能够通过索引访问项目,例如JSONObject[0]获取第一个,我无法弄清楚该怎么做.
{
"http://http://url.com/": {
"id": "http://http://url.com//"
},
"http://url2.co/": {
"id": "http://url2.com//",
"shares": 16
}
,
"http://url3.com/": {
"id": "http://url3.com//",
"shares": 16
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个来自服务器的JSON字符串,它看起来像这样:
{
"categories": {
"0": {
"term_id": "247",
"name": "Content Curation"
},
"1": {
"term_id": "50",
"name": "Content Marketing"
},
"2": {
"term_id": "2",
"name": "Curation"
},
"3": {
"term_id": "246",
"name": "Inbound Marketing"
},
"4": {
"term_id": "47",
"name": "Marketing"
},
"5": {
"term_id": "4",
"name": "News Curation"
},
"6": {
"term_id": "36",
"name": "SEO"
},
"8": {
"term_id": "248",
"name": "Wordpress Content Curation"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的任务是获取"term_id"和"name"字段的值.我曾经使用以下代码从当前的JSONObject获取"categories"对象:
JSONObject jObject = new JSONObject(responceData);
JSONObject categoryObject = jObject.getJSONObject("categories");
JSONArray jarray …Run Code Online (Sandbox Code Playgroud) 我正在使用改造来处理 rest-api 调用。我有一个返回以下 json 的 rest API
"MyObject": {
"43508": {
"field1": 4339,
"field2": "val",
"field3": 15,
"field4": 586.78
},
"1010030": {
"field1": 1339,
"field2": "val212",
"field3": 1,
"field4": 86.78
},...
}
Run Code Online (Sandbox Code Playgroud)
请注意,该对象MyObject包含名称实际上是 id 的对象。对于所有其他其他 API,我正在使用改造没有问题。在这种情况下,似乎无法使用标准方法:定义一个包含响应中预期字段的类。
有没有办法将此json转换为包含数组的json
{
"field1": xxx,
"field2": "yyy",
"field3": www,
"field4": zzz
}
Run Code Online (Sandbox Code Playgroud)
或者有没有更好的方法来处理这个问题而不必回到“手动”解析json?
我跟随JSON作为我服务器的响应.起初,我想,这是无效的JSON,但在验证之后,它似乎是正确的:
JOSN: {
"category": {
"1": "World",
"2": "Politics",
"3": "Economy",
"4": "Sports",
"5": "Cricket",
"6": "General",
"7": "Business",
"8": "Services",
"9": "Law & Order",
"10": "Entertainment"
}
}
Run Code Online (Sandbox Code Playgroud)
验证: 
如果它本来是JSONArray,我会用这个解决方案从SO解析它:如何解析一个没有密钥的JSON中的JSON?
但是我如何解析我在这里的JSON?
任何帮助赞赏.