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 方法。