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 响应

如何在 obj-c 中解析动态 json 数据?

Objective-c 中更好的 JSON 解析实现和最佳实践?

iOS JSON解析Objective-C并传递POST方法参数

AFNetworking JSON 到 UITableView - Objective-C