如何处理':这个类不是密钥$ oid'错误编码的密钥值
我碰到错误(在主题中陈述),因为有一些属性“ID”不存储在返回的JSON中包含“$ oid”的散列。 例如
有时我会得到:
“ID”:{ “$ OID”: “4eea972209f47a0028000140”}
其他时间我得到
“ID”: “4eea972209f47a0028000140”
我正在尝试在下面的代码中进行检查以迎合这种不规则性
if ([[question valueForKey:@"id"] valueForKey:@"$oid"]) { question_id = [[question valueForKey:@"id"] valueForKey:@"$oid"]; } else { question_id = [question valueForKey:@"id"]; }
但是,在检查阶段代码失败仍然不起作用。
我怎样才能实现一个支票,以便我只从“$ oid”中提取question_id才存在?
尝试下面的代码。
id quesDict = [question valueForKey:@"id"]; if( [quesDict isKindOfClass:[NSDictionary class]] ) { question_id = [quesDict valueForKey:@"$oid"]; } else { question_id = quesDict; }
你需要检查[question valueForKey:@"id"]
返回的是什么types,它有时看起来像是一个string,有时它是另一个KVC兼容的对象。 你的错误将在第一个如果陈述。