Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSJSONSerialization未正确映射布尔值_Ios_Json_Parsing_Nsjsonserialization - Fatal编程技术网

Ios NSJSONSerialization未正确映射布尔值

Ios NSJSONSerialization未正确映射布尔值,ios,json,parsing,nsjsonserialization,Ios,Json,Parsing,Nsjsonserialization,我正在从中读取数据。API以JSON格式返回数据,其中布尔变量的写入方式如下: { "obj" : { "sharing":false, "modified":"tuesday" } } 注意,sharing:false在单词false的周围没有引号。然后,我使用NSJSONSerialization将这个JSON解析为一个对象(本例中为NSDictionary) 问题是,“共享”:false或“共享”:true总是创建共享为0的对象,其中0是值为0的NS

我正在从中读取数据。API以JSON格式返回数据,其中布尔变量的写入方式如下:

{ "obj" :
   { 
      "sharing":false,
      "modified":"tuesday"
   }
}
注意,sharing:false在单词false的周围没有引号。然后,我使用NSJSONSerialization将这个JSON解析为一个对象(本例中为NSDictionary)

问题是,“共享”:false或“共享”:true总是创建共享为0的对象,其中0是值为0的NSNumber


我的问题是,这是否是有效的JSON,NSJSONSerialization是否工作不正常,或者原始JSON是否无效

它是有效的。您始终可以从
NSNumber
获取
BOOL
作为
[number boolValue]
并将其检查为

if ([number boolValue])


NSJSONSerialization对我来说可以很好地使用上述json(输入false和true):


好的,那么它是有效的?你有参考资料吗?这样我就可以问苹果为什么NSJSONSerialization总是将其映射为NO?@PauldeLange,它不应该总是
NO
。。它应该是0表示假,1表示真。@PauldeLange,你是在询问技术支持吗。。刚才检查了一些关于bool和json的其他问题,看起来我上面的回答应该对这种情况有所帮助。请看这里的问题。。我不知道你为什么没有实现这一点……这一切都很好。一定是在你如何尝试阅读从NSJSONOk获得的词典。我应该先检查一下。问题出在服务器上。它总是返回false.:)我也经常很快地责怪系统类,我通常是错的:/@PauldeLange,我就是这么说的。如果它是真的,你将得到它作为1。不是零,谢谢。我只是做了完全相同的事情,而且效果很好。->服务器错误总是返回false。
if ([number boolValue] == YES)
NSData *json = [@"{ \"obj\" : \
                { \
                \"sharing\":false, \
                \"modified\":\"tuesday\" \
                } \
                }" dataUsingEncoding:NSUTF8StringEncoding];
id dict = [NSJSONSerialization JSONObjectWithData:json options:0 error:nil];
id sharing = dict [@"obj"][@"sharing"];
NSLog(@"%d", [sharing boolValue]);

json = [@"{ \"obj\" : \
                { \
                \"sharing\":true, \
                \"modified\":\"tuesday\" \
                } \
                }" dataUsingEncoding:NSUTF8StringEncoding];
dict = [NSJSONSerialization JSONObjectWithData:json options:0 error:nil];
sharing = dict [@"obj"][@"sharing"];
NSLog(@"%d", [sharing boolValue]);