Swift JSON编码时支持Camel Case和Snake
2018-07-09 本文已影响0人
ray_1942
🤔🤔🤔
Swift 4.0引入了Codable,但是有个麻烦的问题:如果JSON数据的key命名格式是snake_case的话,我们必须创建自己的CodingKeys来告诉苹果怎么转换。
但是在Swift 4.1中,苹果给JSONDecoder引入了一个属性keyDecodingStrategy;对应的JSONEncoder引入了一个属性keyEncodingStrategy。这样我们就不需要设置定义CodingKeys了。只需要在decoding的时候把keyDecodingStrategy设置为.convertFromSnakeCase;在encoding的时候把keyEncodingStrategy设置为.convertToSnakeCase
属性名策略说明:
CamelCase策略,对象属性:personId,序列化后属性:persionId
PascalCase策略,对象属性:personId,序列化后属性:PersonId
SnakeCase策略,对象属性:personId,序列化后属性:person_id
KebabCase策略,对象属性:personId,序列化后属性:person-id