前言:Codable是苹果自带的基于KVC编码的数据转换模型的协议
一:首先创建一个xyModel.swift
文件
//
// HomeModel.swift
// swift项目框架
//
// Created by JH on 2022/5/29.
// Copyright © 2022 XY. All rights reserved.
//
import UIKit
struct HomeModel : Codable {
var name: String
var modelName: String
var booksList: [HomeBookModel]? //嵌套模型
private enum CodingKeys : String , CodingKey {
case name = "names" //属性和服务器返回的字段个别不一样
case modelName
case booksList
}
}
//模型里面有个其他模型或者模型数组,那么只要保证嵌套的模型里面依然实现了对应的协议
// BookModel
struct HomeBookModel:Codable {
var color:String
var size:String
}
二:进行转换
//MARK: 转模型
func changeJStoModel() {
//服务器返回数据
let jsonStr = """
{
"names":"张三",
"modelName":"23",
"booksList" :
[{
"color":"蓝色",
"size":"180*100"
},
{
"color":"红色",
"size":"200*100"
}]
}
"""
//转模型
if let jsonData = jsonStr.data(using: .utf8) {
do {
let dataStruct = try JSONDecoder().decode(HomeModel.self, from: jsonData)
print("转模型dataStruct:" + "\(dataStruct)" )
} catch {
debugPrint("error == \(error)")
}
}
}
网友评论