【发布时间】:2023-03-14 14:00:05
【问题描述】:
我已经从 JSON 文件创建了一个 NSDictionary,但是当我尝试这样做时
NSString *key = [NSString stringWithFormat:@"%i",indexPath.row];
NSDictionary *currentObject = [JSONdata objectForKey:key];
我错误接收和-[__NSCFArray objectForKey:]: unrecognized selector sent to instance错误
当我执行NSLog 或JSONdata 时,这是我的输出:
(
{
1 = {
description = "";
facets = (
{
name = Red;
},
{
name = Blue;
},
{
name = Skinny;
},
{
name = Standard;
},
{
name = "Navy Blue";
}
);
id = 1073;
owner = 1001;
"post_date" = 1341980987;
transaction = 24;
username = TonyB;
};
},
{
2 = {
description = "";
facets = (
{
name = "Bow Tie";
},
{
name = Blue;
},
{
name = Orange;
},
{
name = Yellow;
}
);
id = 1001;
owner = 1001;
"post_date" = 1340640012;
transaction = 6;
username = TonyB;
};
}
)
我认为我应该能够使用[JSONdata objectForKey:@"0"] 或[JSONdata objectForKey:@"1"] 获得的第一组密钥应该是1 和2 是否更正?还是我错过了什么?
【问题讨论】:
-
但这是一个非常奇怪的 JSON 布局。你是坚持这种布局还是对一些更合乎逻辑的结构持开放态度?我个人倾向于一个简单的字典数组,而不是一个字典数组,其中每个字典都有一个键(每个键都不同),它的值是另一个字典(你可能想成为你的最后一个
currentObject)。你可以编写代码来提取你想要的东西,但你会扭曲自己来做一些真正适合于更简单、更优雅的结构的事情。 -
我同意 Rob 的观点,这是我见过的最奇怪的 JSON。
-
@Rob 我非常愿意重新格式化我的 JSON。我通过 PHP 的
json_encode创建它。给它一点帮助让它变得更干净会很棒。 -
@Jeremy1026 请参阅下面的answer,其中我向您展示了生成简化 JSON 的 PHP 代码,然后向您展示了在清理 JSON 后生成的 Objective-C 是多么简单。
标签: objective-c ios json nsdictionary