JSON 中的地幔忽略键
Mantle ignore key in JSON
我在创建地幔模型时一直试图忽略字典中的一个键。
假设 json 包含:
{
prop1:"my prop",
prop2:"my prop2"
}
最初我有一个模型
class MyModel: MTLModel, MTLJSONSerializing {
//MARK: Model properties
var prop1: String!
class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]! {
return ["prop1":"prop1"]
}
}
问题是我收到一条错误消息“此 class 与键 prop2 的键值编码不兼容”。
我还注意到在使用字典 try! super.init(dictionary: dictionaryValue, error: ())
初始化模型时不会调用 JSONKeyPathsByPropertyKey
方法,只有在从模型生成 JSON 强制属性具有相同的属性时才会调用键为 JSON。
我希望能够忽略某些键的原因是因为后端服务可能会发生变化,而且我不必滚动更新,因为一些额外的信息已添加到调用中,或者因为它们完全不相关。
原来我没有使用 MTLJSONAdapter
,而是使用了 init(dictionary: dictionaryValue, error: ())
。
正确的方法是使用 MTLJSONAdapter.modelOfClass(MyClass.self, fromJSONDictionary: aDictionary, error: ());
这样实际上使用了 JSONKeyPathsByPropertyKey
方法。
我在创建地幔模型时一直试图忽略字典中的一个键。 假设 json 包含:
{
prop1:"my prop",
prop2:"my prop2"
}
最初我有一个模型
class MyModel: MTLModel, MTLJSONSerializing {
//MARK: Model properties
var prop1: String!
class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]! {
return ["prop1":"prop1"]
}
}
问题是我收到一条错误消息“此 class 与键 prop2 的键值编码不兼容”。
我还注意到在使用字典 try! super.init(dictionary: dictionaryValue, error: ())
初始化模型时不会调用 JSONKeyPathsByPropertyKey
方法,只有在从模型生成 JSON 强制属性具有相同的属性时才会调用键为 JSON。
我希望能够忽略某些键的原因是因为后端服务可能会发生变化,而且我不必滚动更新,因为一些额外的信息已添加到调用中,或者因为它们完全不相关。
原来我没有使用 MTLJSONAdapter
,而是使用了 init(dictionary: dictionaryValue, error: ())
。
正确的方法是使用 MTLJSONAdapter.modelOfClass(MyClass.self, fromJSONDictionary: aDictionary, error: ());
这样实际上使用了 JSONKeyPathsByPropertyKey
方法。