RESTKit对象的BOOL属性为true / false JSON
我有一些对象,我发送到服务器作为JSON,在请求正文中,为POST请求。 我的问题涉及布尔属性。
假设我在作为JSON发送的对象中拥有此属性:
@property (nonatomic) BOOL exported;
默认情况下,RestKit在JSON中将布尔值发送为1
或0
。 我如何设置RestKit,以便所有的BOOL都被发送为true
或false
(这是JSON布尔类型)。
有趣的是,当转向另一种方式时,从JSON true
或false
到BOOL属性,RestKit读取JSON true/false
就好了,适当地设置属性。
另外; 你可以使它成为BOOL而不是BOOL,restkit将正确解析它。
@property (nonatomic) bool exported;
在阅读中正确处理它的原因是bool的本质上只是1或0 ...所以Restkit非常聪明,可以将它转换为BOOL。
Source type :NSCFBoolean
Destination type : NSString
Discussion: Boolean literals true and false parsed from JSON are mapped to NSString properties as @"true" and @"false"
来源:见本表
这个问题源于SQLite没有布尔数据类型的事实。 所以,如果我在我的核心数据架构中有一个布尔值,它仍然会以SQLite中的整数存储(int值为1或0)。 所以这就是为什么我通过RestKit输出JSON时看到1
或0
原因。
为了解决这个问题,我将我的原始问题从BOOL
更改为NSNumber
:
@property (nonatomic) NSNumber *exported;
每当我分配给这个属性,我需要设置一个NSNumber
布尔值。
target.exported = [NSNumber numberWithBool:[self.exported boolValue]];
生成的JSON现在是正确的,因为我使用boolValue
设置NSNumber:
"exported" : true
链接地址: http://www.djcxy.com/p/72947.html
上一篇: RESTKit object BOOL property to true/false JSON
下一篇: How to create the route in symfony 2 which maps to external URL?