我将
JSON格式的数据从Web服务器映射到Objective C类(在
Xcode中建模的NSManagedObjects,由Core Data处理).对于Objective C类的每个属性,我需要:
>确定JSON对象中是否存在属性的键,
>确定该键的值是否为空,并且
>如果条件1和2为真,则将值传递给建模的类实例
现在,我正在为每个属性对这个序列进行硬编码,因此每个属性都需要如下代码:
// dictObject is the JSON object converted into a NSDictionary,// and person is the instance of the modeled class if ([dictObject objectForKey:@"nameFirst"] && [dictObject objectForKey:@"nameFirst"] != [NSNull null]) { person.nameFirst = [dictObject objectForKey:@"nameFirst"]; }
除了需要大量代码来处理各种类之外,这看起来很奇怪而且很脆弱:任何名称更改(或语言本地化)都会导致映射失败.
必须有一个更好的方法……我错过了什么?
解决方法
有一个名为RestKit的框架允许您这样做.我没有对它进行测试,但它似乎得到了一个活跃的公司的支持,可以作为开源来源:
http://restkit.org/