【发布时间】:2011-03-13 11:49:24
【问题描述】:
我只是在 iOS 中使用 JSON 解析器,它作为一个(简单)示例运行良好。但我想知道如何真正解析(有点)更复杂的东西,Twitter 趋势 JSON,像这样:
{
"trends": {
"2011-03-13 11:42:17": [
{
"events": null,
"query": "Fukushima",
"promoted_content": null,
"name": "Fukushima"
},
{
"events": null,
"query": "Rebecca Black",
"promoted_content": null,
"name": "Rebecca Black"
},
{
"events": null,
"query": "Pearl Harbour",
"promoted_content": null,
"name": "Pearl Harbour"
},
...
{
"events": null,
"query": "Magdalena Neuner",
"promoted_content": null,
"name": "Magdalena Neuner"
}
]
},
"as_of": 1300016537
}
如何只返回前 3 个查询?在这种情况下:福岛、丽贝卡·布莱克和珍珠港。
使用示例代码,它是这样的:
for (int i = 0; i < [luckyNumbers count]; i++)
[text appendFormat:@"%@\n", [luckyNumbers objectAtIndex:i]];
虽然这是一个更简单的提要,但是否可以以相同的方式处理我正在寻找的内容?
编辑
我现在正在尝试返回“查询”的值:
所以我正在这样做:
NSLog(@"%@", [[luckyNumbers objectForKey:@"trends"]);
这当然会记录键“趋势”的内容,我如何不仅返回趋势的第一个(也是唯一的)键,还向下挖掘一个级别以返回“查询”的内容?
我也试过这样的:
NSString *date = [[[luckyNumbers valueForKeyPath:@"trends"] allKeys] description];
NSArray *trends = [luckyNumbers objectForKey:@"trends"];
NSLog(@"%@", [trends valueForKeyPath:date]);
但是不行……
【问题讨论】: