JSON 子级别提取 - 如何? Objective-C

Posted

技术标签:

【中文标题】JSON 子级别提取 - 如何? Objective-C【英文标题】:JSON Sub Level Extraction - How to? Objective-C 【发布时间】:2011-09-28 00:27:49 【问题描述】:

我正在使用SBJSON(并且是 JSON 新手),并且可以轻松地提取 httprequest 的响应数据,并在其最顶层使用它。问题是我对访问子级别中的元素一无所知。

例如:

1 级:

键:id

键:car_list

=========

car_list(2 级)

密钥:car_id

密钥:汽车名称

键:car_size

就像我说的,我可以通过以下方式访问***对象:

NSDictionary *responseDict = [responseString JSONValue];
NSString *id = [responseDict objectForKey:@"id"];

但不知道如何访问“car_list”中的元素。

谢谢

【问题讨论】:

【参考方案1】:

一个简单的方法是使用 valueForKeyPath:

例如:

NSString *carName = [responseDict valueForKeyPath:@"car_list.car_name"];

您需要做的就是将您的密钥与句点连接起来。如果这些路径中的任何一个返回一个数组或集合,那么您将收到一个集合。您还可以使用 set/array 键值编码路径来计算集合上的内容,例如 @avg 和 @count。

【讨论】:

以上是关于JSON 子级别提取 - 如何? Objective-C的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlite 中使用 json_extract 从父对象和子对象中提取数据

如何在 dart/flutter 中提取 JSON 子数据

如何使用正则表达式从 JSON 结构中提取子节点?

JSON提取子键+值数组

仅在子级别上应用 jq 过滤器,保持 JSON 的其余部分完好无损

MySQL 嵌套 JSON 列搜索和提取子 JSON