RESTKit对象的BOOL属性为true / false JSON

我有一些对象,我发送到服务器作为JSON,在请求正文中,为POST请求。 我的问题涉及布尔属性。

假设我在作为JSON发送的对象中拥有此属性:

@property (nonatomic) BOOL exported;

默认情况下,RestKit在JSON中将布尔值发送为10 。 我如何设置RestKit,以便所有的BOOL都被发送为truefalse (这是JSON布尔类型)。

有趣的是,当转向另一种方式时,从JSON truefalse到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时看到10原因。

为了解决这个问题,我将我的原始问题从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?