【发布时间】:2011-08-09 23:47:30
【问题描述】:
我正在将 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"];
}
除了需要 大量 代码来处理各种类之外,这看起来既笨拙又脆弱:任何名称更改(或语言本地化)都会导致映射失败。
必须有更好的方法......我错过了什么?
【问题讨论】:
标签: objective-c json serialization deserialization