我在使用JSON服务响应方面遇到了一些问题。该服务以两种不同的方式响应。即,然后产生错误或有意义的响应,它会抛出另一个json格式。现在大部分时间都没关系,有时候Objective C只是放弃了,因为它没有处理新结构(即我试图对它进行编程以便处理)。
我有一个基本的JSON调用并返回(Abstract)。
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;
}
我只想检查返回的JSON,如果图表节点存在,如果它继续(这些不是您要查找的机器人),否则会抛出错误并处理异常并停止崩溃在用户身上。
我尝试了不同的技巧,但每个人似乎要么完全跳过“检查”,要么完全失败。
我已经回到了绘图板,肯定有一种简单的方法可以实现一个简单的if语句来检查。我错过了什么?
提前致谢!
答案 0 :(得分:0)
好的,我在这次讨论的帮助下找到了这个问题。 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");
}