gpt4 book ai didi

iOS 检查 key 存在

转载 作者:行者123 更新时间:2023-11-28 18:18:44 25 4
gpt4 key购买 nike

我需要检查 id 中是否存在 key 。

我有这个:

id tab = [NSJSONSerialization JSONObjectWithData:result options:0 error:&jsonParsingError];

我需要检查键“name”是否存在,但没有任何作用..

我试过了:

if([tab objectForKey:@"name"])

if([[tab objectForKey:@"name"] isKindOfClass:[NSNull null]])

等..但我总是错误:[__NSCFArray objectForKey:]: unrecognized selector sent to instance

在获取值之前我需要做什么来检查 key 是否存在?

最佳答案

根据你接收到的数据,NSJSONSerialization 会给出三种可能的结果之一:

nil - 如果在解析过程中出现任何错误,则结果为 nil。一个 NSDictionary* - 如果数据是一个 JSON 对象,结果将是一个 NSDictionary*。一个 NSArray* - 如果数据是一个 JSON 数组,结果将是一个 NSArray*。所以你写:

id tab = [NSJSONSerialization ... ];
if (tab == nil)
{
NSLog (@"There was an array, tab is nil");
}
else if ([tab isKindOfClass:[NSDictionary class]])
{
NSDictionary* tabDict = tab;
// ... Do stuff with tabDict. Don't touch tab anymore.
}
else if ([tab isKindOfClass:[NSArray class]])
{
NSArray* tabArray = tab;
// ... Do stuff with tabArray. Don't touch tab anymore.
}
else
{
NSLog (@"JSON parser went crazy. Report a bug to Apple");
}

你需要根据文档弄清楚你有服务器应该给你什么样的 JSON 文档。但是一旦您知道这一点,仅仅因为您知道服务器应该给您发送一个 JSON 对象,这并不意味着它确实给您发送了一个 JSON 对象.所以你需要小心并检查你收到的数据,以避免你的应用程序在意外发生时崩溃。

关于iOS 检查 key 存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25606558/

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