ios - Xcode - 从数组中的数组中获取对象

标签 ios objective-c cocoa-touch ios7

我有一个 JSON 对象数组(字典?),它们本身就是一个数组。我需要在其中一个数组中找到一个值,以便稍后进行比较。我的部分 JSON 数据:

[
  {
    "Name": "Exhibitor",
    "Url": "api/congress/exhibitor",
    "ResourceType": "Data",
    "LastMod": 1389106977
  },
  {
    "Name": "Workshop",
    "Url": "api/congress/workshop",
    "ResourceType": "Data",
    "LastMod": 1389106977
  },
  {
    "Name": "Speaker",
    "Url": "api/congress/Speaker",
    "ResourceType": "Data",
    "LastMod": 1389106977
  },
]

我的方法接收一个表名作为参数并返回一个时间戳。例如,我将如何收到表“workshop”的时间戳(1389106977)?这看起来很简单,但我无法解决“嵌套”数组/字典的问题。

谢谢,

编辑:

这是我的代码,其中添加了木马病毒。

NSError* localError;
NSMutableArray *syncDataArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if (syncDataArray)
{
    NSNumber *lastMod = nil;
    for (NSDictionary *dict in syncDataArray) 
    {
        NSLog(@"current table is: %@", dict[@"Name"]);
        if ([tableName isEqualToString:dict[@"Name"]]) 
        {
            lastMod = dict[@"LastMod"];
            //break;
         }
    }
    NSLog(@"LastMod = %@", lastMod);
}
else
{
    NSLog(@"syncDataArray is empty");
}

这完美且有意义

最佳答案

JSON 数据看起来像一个字典数组,因此您可以遍历该数组并测试“Name”条目:

NSArray *jsonData = ...;   // You have converted JSON to Objective-C objects already
NSNumber *lastMod = nul;
for (NSDictionary *dict in jsonData) {
    if ([@"Workshop" isEqualToString:dict[@"Name"]]) {
        lastMod = dict[@"LastMod"];
        break;
    }
}
if (lastMod) {
    // You found it
}

(请注意,我不确定用于存储“LastMod”对象的对象类型,因此您可能需要进行一些调试才能找出答案)。

编辑 如果您广泛使用此数据,您应该立即将 JSON 数据转换为(自定义)模型对象数组,这将使您的应用程序变得更容易操作数据复杂。

关于ios - Xcode - 从数组中的数组中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046005/

相关文章:

objective-c - 有没有办法将可点击的链接打印到控制台?

iphone - 以不在 Settings.app 中的 "Language"列表中的语言对应用程序进行本地化

ios - XCTestCase setUp 方法的目的是什么?

iphone - 如何在 quartz 2d 中绘制 alpha < 1 的线

ios - 核心数据模式设计

objective-c - NSWindow 设置 View

ios - 版权/注册符号编码不起作用

ios - 未从其他 View Controller 保存属性更新

c# - 从 C# 到 Objective C 会有多大的飞跃

ios - 优化从相机胶卷中选取的图像以减小文件大小