1. 自定义对象需要遵守Codable
协议
import Foundation
struct BookItem: Codable {
var bookName: String
var bookDescribe: String
var bookPrice: Float
//区别 可以将字典中`name`的值解析到`bookName`
fileprivate enum CodingKeys: String, CodingKey {
case bookName = "name"
case bookDescribe
case bookPrice
}
}
2. vc
中调用
fileprivate func codableDemo() {
//1. json字符串转自定义对象
let json = """
{
"name": "米饭童鞋",
"bookPrice": 200.87,
"bookDescribe": "A handsome boy."
}
"""
//2. string -> data
guard let data = json.data(using: .utf8) else {
return
}
//3. data -> item
let decoder = JSONDecoder()
guard let book = try? decoder.decode(BookItem.self, from: data) else {
return