美文网首页Swift好文收藏
iOS Swift HandyJSON模型转换

iOS Swift HandyJSON模型转换

作者: CarrySniper | 来源:发表于2023-06-25 19:14 被阅读0次

HandyJSON是一种Swift库,用于将JSON数据转换为Swift对象,同时也可以将Swift对象转换为JSON数据。

一、导入HandyJSON库

在Profile文件插入:

pod 'HandyJSON'

终端cd ~/项目路径,执行pod install,等待安装完成即可

二、创建Swift数据模型

创建Swift类,并使其遵循HandyJSON协议。如果你需要存储JSON中的所有字段,可以将类属性定义为可选类型。

import HandyJSON
class User: HandyJSON {
    var name: String?
    var age: Int?

    required init() {}
}

三、解析JSON数据

使用JSONDeserializer解析JSON,并使用HandyJSON协议解析成Swift对象。

避免报错No exact matches in call to static method 'deserialize'data必须声明为String?,[String: Any]?,NSDictionary?

let jsonDict: NSDictionary = ["name": "Tom", "age": 12]
if let user = JSONDeserializer<User>.deserializeFrom(dict: jsonDict) {
    print(user.name)
    print(user.age)
}

或者

let jsonDict: NSDictionary = ["name": "Tom", "age": 12]
let user = User.deserialize(from: jsonDict)

如果是转成模型数组,则可以这样:

let jsonArray = [
    ["name": "Tom", "age": 19],
    ["name": "Jerry", "age": 28]
]
let userArray = Array<User>.deserialize(from: jsonArray as? Array<Any>)

四、将Swift对象转换为JSON数据

使用toJSONString()方法将Swift对象转换为JSON字符串。

let user = User()
user.name = "Tom"
user.age = 18
// 1、转换成json数据
user.toJSON()
// 2、转换成json字符串
if let jsonString = user.toJSONString() {
    print(jsonString) // 打印结果:{"name":"Tom", "age":18}
}

以上就是使用HandyJSON的基本方法。需要注意的是,除了标量类型的属性(例如String、Int、Double)以外,所有其他自定义类型(例如数组,字典等)也必须遵循HandyJSON协议。

如果不记得转换方法,可以封装一个类、或者写个Extension扩展类去实现所有转换方法。避免使用时忘记,每次都要去找文档了。

相关文章

网友评论

    本文标题:iOS Swift HandyJSON模型转换

    本文链接:https://www.haomeiwen.com/subject/ozbiydtx.html