gpt4 book ai didi

ios - Swift 的通用 JSON 解析器

转载 作者:行者123 更新时间:2023-11-29 11:45:49 27 4
gpt4 key购买 nike

在我们的 iOS 项目中,我们使用 SwiftyJSON 和 ObjectMapper 来解析 JSON 响应并将它们存储在模型中。但是,对于模型,我们必须手动指定映射。例如;如果我有一个名为 User 的模型类,它具有名称和年龄作为属性,那么在解析时,我必须在 User 类中指定以下内容:

func mapping(map: Map) {
name <- map["Name"]
age <- map["Age"]
}

对所有模型都执行相同的操作既乏味又耗时。没有一种方法可以概括解析吗?就像我将任何 JSON 传递给一个函数并指定模型一样,该函数应该向我返回具有解析值的模型对象(如果它们可用)。我不想为每个模型编写单独的映射。

最佳答案

我认为你应该看看EVReflection ,一个 Swift 3 库,可以满足您的需求。

更新:

Swift 4(现在处于 Beta 阶段)似乎带来了一些与这个问题相关的变化。

struct MyStruct: Codable {
var str: String
var num: Int
}

let myStruct = MyStruct(str: "test", num:5)

let encoder = JSONEncoder()
let jsonData = try encoder.encode(myStruct)
let json = String(data: jsonData, encoding: .utf8)

print(json) // prints {"str": "test", "num": 5}

// Also decoding

let decoder = JSONDecoder()
let decoded = try decoder.decode(MyStruct.self, from: jsonData)

// decoded is a structure of type MyStruct

print(decoded.str) // test

关于ios - Swift 的通用 JSON 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000550/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com