Swift Codable – JSON Parser

Tram Ho

Codeable là một protocol dùng để convert một object Swift thành kiểu Data. Codeable là một type alias cho protocal Encodealbe và Decodable. Đây là một protocal chính thức và dễ sử dụng để parsing JSON object từ server thành một Swift Object.

Encodable thường được sử dụng khi Swift object phải serialised và gửi lên server. Mặt khác, Decodable được sử dụng khi JSON từ Server phải được deserialised.

Hơn nữa, custom object conform Codable giờ đã có thể lưu và truy xuất từ UserDefaults trực tiếp với chỉ 3 bước. Tiết kiệm rất nhiều thời gian.

Basic parsing — Simple JSON

Cùng lấy JSON trên như một ví dụ và thử parse nó sang Swift object. Nó có 4 trường với các kiểu: String, Int, Double và Int Array. Chúng đều là những kiểu thông thường trong JSON.

Bằng cách tạo một object conform Codable, JSON có thể decode trực tiếp thành Swift object.


Mặc định tên biến trong cấu trúc swift sẽ map với tên key trong JSON.

Key customisation

Theo coding convention, snake case (vd: foo_key) thường được sử dụng trong JSON nhưng camel case (vd: fooKey) lại thường được sử dụng trong Swift. Do đó, Apple đã giới thiệu một protocal CodeingKey để cung cấp khả năng custom key name khi chúng ta parse JSON.

Encoding customisation

Để giảm traffic tới server, chỉ những trường cần thiết mới có thể Serialised và gửi tới server, encode(to encoder: Encoder) cung cấp khả năng tùy biến serialisation và bỏ qua những trường dư thừa. Trong ví dụ trên, chỉ có strProp và intProp là được serialised và doubleProp và intArrayProp đều bị bỏ qua

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo