【发布时间】:2012-02-28 12:04:28
【问题描述】:
现在我正在使用 Restkit 从 iPhone 设备向远程服务器发出 REST 和 RPC 请求,这是一个非常棒的库。
现在我遇到了一个简单的问题。我的服务器需要一些数据为整数。这意味着一个看起来像这样的 json 数组。
{'myInteger':1234}
请注意 my_integer_field 键的值不在 '' 之间。这意味着该值是一个数字而不是一个字符串。
当我制作映射和所有东西时,我将 my_integer_field 设置为对象定义中的 NSNumber 值。但是当对象被解析为 Json 时,值出现在 '' like:
{'myInteger':'1234'}
所以我从服务器收到一个错误作为响应,因为假设“1234”代表一个字符串而不是一个数字。有没有办法强制 json 解析在 NSNumber 字段中不包含 ''?
更新
代码如下:
//myclass.h
@interface myClass : NSObject {
NSNumber *myInteger;
}
@property (nonatomic, retain) NSNumber *myInteger;
//appDelegate.m here is where i define the mappings for everything.
//myClass MAPPING
RKObjectMapping* myClassMapping = [RKObjectMapping mappingForClass:[myClass class]];
[myClassMapping mapAttributes:@"myInteger", nil];
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:myClassMapping];
// myClass SERIALIZATION
RKObjectMapping* myClassSerializationMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];
[myClassSerializationMapping mapAttributes:@"myInteger", nil];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:myClassSerializationMapping forClass:[myClass class]];
我错过了什么?
【问题讨论】:
-
您尝试映射到 JSON 的任何内容(我说过什么)都会转换为字符串!您必须在获取它时使用显式转换进行管理!
-
所以...我想做的事不可行?
-
有可能!!但是当你使用 json 数据时,尝试输入 cast 然后使用它!明白我的意思了吗?
-
是的,但那是在服务器端......理想的情况是客户端发送所需的 json 而不是服务器解析它。
-
您的意思是您的 JSON 是从客户端发送的,对吗?嘿嘿让我发烧!你实际上得到了什么例外?可以吗?
标签: ios json parsing rest restkit