Objective-c 解析 JSON 响应
Posted
技术标签:
【中文标题】Objective-c 解析 JSON 响应【英文标题】:Objective-c Parse JSON Response 【发布时间】:2012-05-15 23:16:48 【问题描述】:我一直在做大量的阅读,但我找不到任何与我想要做的事情相近的东西。我收到一个 JSON 响应并用结果填充 UITableView
。当用户选择UITableView
上的行时,我想获取与显示的名称相关联的相应“id”值。 JSON 响应示例:
"active":true,"created_at":"2012-05-12T03:04:21Z","description":"Test 1",
"id":11,"name":"This Is A Test","updated_at":"2012-05-12T03:04:21Z"
所以我将UITableView
行设置为This Is A Test 的名称,并且当用户选择我想要返回数字11 时,我将其返回为选中状态。在didSelectRowAtIndexPath
函数中我可以拉出
UITableViewCell *selectedCell = [self.tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = selectedCell.textLabel.text;
sc.selectedCategory = cellText;
这会给我对象的名称,但我怎样才能再次调用字典并获取名称与所选单元格匹配的“id”值?我对objective-c 很陌生,但多年来一直在做java。任何例子都会很棒。
提前致谢!
【问题讨论】:
【参考方案1】:你有一本字典。您需要将数组objectAtIndex
(tableview 索引路径)转换为NSDictionary
对象,然后使用valueForKey
。
didSelectRowAtIndexPath
中类似于以下内容:
NSDictionary *selRow = (NSDictionary *)[myArray objectAtIndex:indexPath.row];
NSInteger myID = [[selRow valueForKey@"id"] intValue];
【讨论】:
因为我已经将我的对象分成了数组,所以我能够使用 [myArray objectAtIndex:indexPath.row].... 来获取值。这似乎可以在不返回 json 的情况下工作字典对象。以上是关于Objective-c 解析 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SBJson 和 Objective-C 解析和提取嵌套的 JSON 响应
Objective-C:来自 jquery 回调的 json 响应
Objective-c 中更好的 JSON 解析实现和最佳实践?