ios json解析子集合

标签 ios json

我有一个 json 集合,我能够完美地解析 1 级深度,但主集合中的每个项目都有一个集合。我不太确定如何访问“项目”以获取子集合,就像我对主集合所做的那样...

NSString *response = [request responseString];
NSDictionary *json = [response JSONValue];

NSArray *items = [json valueForKeyPath:@"item"];

for (id item in items) 
{
    mainObject.name = [item objectForKey:@"name"];  //this works fine
    // How do I get sub collection from item?
}

一些json:

{"item":
    { 
      "available_at"     : null,
      "created_at"       : "2011-12-09T19:52:23Z",
      "lo_id"            : 30,
      "id"               : 24,
      "merchant_id"      : 1,
      "order_id"         : 25,
      "reach_local_link" : null,
      "status"           : null,
      "token"            : "12-258847891-1",
      "updated_at"       : "2011-12-09T19:52:23Z",
      "url"              : "api/dir/v1/item/12-258847891-1/print",
      "subitem1"         :
          {
             "area"      : "local",
             "broker_id" : "",
             "broker_id" : null,
             "category"  :
                 {
                     "category":....

在示例中,可能有多个子项,例如 subitem1。我需要获取这些集合并在当前循环中有另一个 for 循环。

最佳答案

item 只是一个字典或数组,如果它是 JSON 对象中的一个。例如,您应该能够这样做:

NSDictionary *subitem1 = [item objectForKey:@"subitem1"];

里面只是一个NSDictionary,所以你可以把它当作一个来使用。

我真的建议记录您的 JSON 对象的 Objective-C 表示,这样可以更轻松地使用它:

NSLog(@"%@", json);

警告
强烈建议在假设它们确实是字典、字符串或数组之前检查您加载的对象的类型。否则,您会注意到您的应用程序将崩溃。

关于ios json解析子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669926/

相关文章:

json.unmarshal() - 返回 nil

java - Android 上的新 JSONArray(String[])

wcf - OData $format 系统查询选项导致错误请求 400

ios - mask 图像的背景颜色

ios - 我无法通过我的网络服务器部署 OTA iPhone 应用程序,但像 Diawi 这样的服务可以在我的设备上很好地安装该应用程序

json - Golang Gorm 使用 slices 和 postgres 的 json 字段

json - 以不区分大小写的方式使用 json_populate_recordset

ios - 在 SwiftUI 的 ListView 中使用可识别的对象集

ios - 容器 View Controller addSubview 异常

ios - Swift - 通过编辑更改保持小数点