func kj_modelKey(from property: Property) -> ModelPropertyKey {
switch property.name {
// 对应dog["toy"]
case "toy": return "dog.toy"
// 对应data[1]["dog"]["name"]
case "name": return "data.1.dog.name"
// 会按顺序映射数组中的每一个key,直到成功为止
// 先映射`nickName`,如果失败再映射`nick_name`
// 如果失败再映射`dog["nickName"]`,如果失败再映射`dog["nick_name"]`
case "nickName": return ["nickName", "nick_name", "dog.nickName", "dog.nick_name"]
default: return property.name
}
}
// 实现kj_modelKey方法
// 会传入模型的属性`property`作为参数,返回值就是属性对应的key
func kj_modelKey(from property: Property) -> ModelPropertyKey {
// 根据属性名来返回对应的key
switch property.name {
// 模型的`nickName`属性 对应 JSON中的`nick_name`
case "nickName": return "nick_name"
// 模型的`mostFavoriteNumber `属性 对应 JSON中的`most_favorite_number `
case "mostFavoriteNumber": return "most_favorite_number"
// 模型剩下的其他属性,直接用属性名作为JSON的key(属性名和key保持一致)
default: return property.name
}
}
网友评论