gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:49:34 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com