解析 JSON 到字典,真假问题

Posted

技术标签:

【中文标题】解析 JSON 到字典,真假问题【英文标题】:Parse JSON to dictionary, issue with true and false 【发布时间】:2014-10-10 00:06:55 【问题描述】:

我有一个 JSON 返回给我一个键:

"fork": false 或 "fork": true

当我查字典时,有一个

叉=0;或 fork = 1;

但是当我尝试调用此代码时

BOOL forkExist;

    if (dictionary[@"fork"])
    
        if ((BOOL)dictionary[@"fork"])
        
            NSLog(@">>>>>>>>>>>>>>>>>>> EXIST %@", dictionary[@"fork"]);
            forkExist = YES;
        
        else
        
            NSLog(@">>>>>>>>>>>>>>>>>>> NOT EXIST %@", dictionary[@"fork"]);
            forkExist = NO;
        
    

它非常适合我 NSLog(@">>>>>>>>>>>>>>>>>>> EXIST %@", dictionary[@"fork"]);并且永远不会第二个 NSLog

这是一个日志

>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 1
>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 1

但正如您所见,即使有 0 个值,它也永远不会调用 NOT EXIST。

我检查了字典类[@"fork"],它说它是__NSCFBoolean,但是当应用比较时,它似乎不起作用

【问题讨论】:

dictionary[@"fork"] 是指针,其值为内存地址,!=0。 (BOOL) 将把这个地址转换为真,如果这个指针永远不会为零!= nil 【参考方案1】:

字典将包含一个 NSNumber @0 或 @1 用于 BOOL,并且对象句柄始终是“真实的”,所以...

BOOL forkExist = [dictionary[@"fork"] boolValue];

应该可以正常工作。

【讨论】:

以上是关于解析 JSON 到字典,真假问题的主要内容,如果未能解决你的问题,请参考以下文章

从 JSON 字符串到字典的简单解析器

pandas DataFrame 使用 to_json() 到字典列表

Django解析具有字典的json请求导致错误

ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault的问题

Json 文件到字典

解析JSON读取各种字典