【问题标题】:Parse bool from JSON从 JSON 解析布尔值
【发布时间】:2014-11-30 13:55:31
【问题描述】:

我正在尝试解析多个布尔值。在下面的代码中 JSONObjectNSMutableArray.ii 是索引路径。但是下面我只得到一个值。这是我第一次处理来自 json 的 bool 值,帮助我获取答案列表数组中的 bool 值。

 BOOL options= [[[jsonObject objectAtIndex:ii] objectForKey:@"Is_Correct"]boolValue] ;
 NSLog(@"correct answer %d",options);

【问题讨论】:

  • jsonObject 包含AnswersList 数组吗?
  • 是的,我正在获取布尔值,但只有顶部的布尔值被获取
  • 如何访问数组中的键值对? [jsonObject objectAtIndex:ii] 将返回一个数组,那么你不能使用方法 objectForKey: 对于一个数组它不会返回任何内容。
  • 不要做长链聚合物陈述,尤其是当你不太清楚自己在做什么的时候。获取jsonObject[1],然后是["AnswersList"],然后是[0],然后是["Is_Correct"],作为单独的语句。 (而且您可能想要遍历数组。)
  • (下面的每个人都完全跳过了AnswersList。)

标签: ios objective-c json boolean


【解决方案1】:
NSDictionary* outerArrayElement = jsonObject[1];
NSArray* amswersList = outerArrayElement["AnswersList"];
NSDictionary* innerArrayElement = answersList[0];
NSNumber* is_correctNum = innerArrayElement["Is_Correct"];
BOOL is_correct = [is_correctNum].boolValue;

但是应该遍历数组,并且在某些情况下还要检查 nil 结果,尤其是在检索外部数组元素时。

为了测试在每一步之后插入 NSLog 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多