检查 JSON 有一个对象 NSArray
Check JSON has an object NSArray
JSON 服务响应有点问题。该服务以两种不同的方式响应。也就是说,它不会产生错误或有意义的响应,而是向您抛出另一种 json 格式。现在大多数时候这是可以的,但是有时 Objective C 只是放弃,因为它没有处理新结构(即我正在尝试对其进行编程以进行处理)。
我有一个基本的 JSON 调用和 return(摘要)。
NSArray *jsonArray = [[NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e] mutableCopy];
当我调用提供详细信息的服务时,我得到以下格式(无错误)
Printing description of jsonArray:
{
YBBN = {
charts = (
{
id = "5f0ec74a-6e7c-5484-aef2-5929b85d9739";
type = General;
},
当我调用没有数据的同一个服务时,它提供了以下结构,导致崩溃。
Printing description of jsonArray:
{
NZAA = 0;
}
我只是想检查 returning JSON 如果 charts 节点存在,如果它确实继续(这些不是你看的机器人for) else 抛出错误并处理异常并停止在用户身上崩溃。
我尝试了不同的技术,但每一种技术似乎都完全跳过 "check" 或完全失败。
我已经回到绘图板了,当然有一种简单的方法可以实现简单的 if 语句来检查。我错过了什么?
提前致谢!
好的,我在这个讨论的帮助下找到了问题。
How to check if an NSDictionary or NSMutableDictionary contains a key?
不知道我以前怎么没发现,但我仍然能够测试它的建议并且结果有效。
为了完成,以下代码是我最终得到的,希望这可能对其他人有所帮助。
NSDictionary *newArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSString *_icaoCode = airportICAOCode.text;
if ([[newArray allKeys] containsObject:_icaoCode]) {
NSLog(@"Contains key");
}
JSON 服务响应有点问题。该服务以两种不同的方式响应。也就是说,它不会产生错误或有意义的响应,而是向您抛出另一种 json 格式。现在大多数时候这是可以的,但是有时 Objective C 只是放弃,因为它没有处理新结构(即我正在尝试对其进行编程以进行处理)。
我有一个基本的 JSON 调用和 return(摘要)。
NSArray *jsonArray = [[NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e] mutableCopy];
当我调用提供详细信息的服务时,我得到以下格式(无错误)
Printing description of jsonArray:
{
YBBN = {
charts = (
{
id = "5f0ec74a-6e7c-5484-aef2-5929b85d9739";
type = General;
},
当我调用没有数据的同一个服务时,它提供了以下结构,导致崩溃。
Printing description of jsonArray:
{
NZAA = 0;
}
我只是想检查 returning JSON 如果 charts 节点存在,如果它确实继续(这些不是你看的机器人for) else 抛出错误并处理异常并停止在用户身上崩溃。
我尝试了不同的技术,但每一种技术似乎都完全跳过 "check" 或完全失败。
我已经回到绘图板了,当然有一种简单的方法可以实现简单的 if 语句来检查。我错过了什么?
提前致谢!
好的,我在这个讨论的帮助下找到了问题。 How to check if an NSDictionary or NSMutableDictionary contains a key?
不知道我以前怎么没发现,但我仍然能够测试它的建议并且结果有效。
为了完成,以下代码是我最终得到的,希望这可能对其他人有所帮助。
NSDictionary *newArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSString *_icaoCode = airportICAOCode.text;
if ([[newArray allKeys] containsObject:_icaoCode]) {
NSLog(@"Contains key");
}