gpt4 book ai didi

ios - 简单的 getJSON() 函数

转载 作者:行者123 更新时间:2023-11-28 16:04:40 24 4
gpt4 key购买 nike

SwiftyJSON是 Swift 的一个非常有用的附加组件,可以通过各种方法(CocoaPods、Carthage 等)导入,我在我的许多项目中使用它,因为它们通常需要 JSON 文件。所以我想要一个很好的简单函数,我可以用必要的参数调用它并从我的 JSON 文件中获取我的原始字符串值。

最佳答案

第 1 步。我们将创建一个协议(protocol),其中包含一个构造函数方法和模型类

protocol JSONable {
init?(parameter: JSON)
}

class Style: JSONable {
let ID :String!
let name :String!

required init(parameter: JSON) {
ID = parameter["id"].stringValue
name = parameter["name"].stringValue
}

/* JSON response format
{
"status": true,
"message": "",
"data": [
{
"id": 1,
"name": "Style 1"
},
{
"id": 2,
"name": "Style 2"
},
{
"id": 3,
"name": "Style 3"
}
]
}
*/
}

第 2 步。我们将创建 JSON 的扩展,它将 JSON 转换为模型类类型的对象

extension JSON {
func to<T>(type: T?) -> Any? {
if let baseObj = type as? JSONable.Type {
if self.type == .array {
var arrObject: [Any] = []
for obj in self.arrayValue {
let object = baseObj.init(parameter: obj)
arrObject.append(object!)
}
return arrObject
} else {
let object = baseObj.init(parameter: self)
return object!
}
}
return nil
}
}

第 3 步。将代码与 Alamofire 或其他代码一起使用。

Alamofire.request(.GET, url).validate().responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)

var styles: [Style] = []
if let styleArr = json["data"].to(type: Style.self) {
styles = styleArr as! [Style]
}
print("styles: \(styles)")
case .failure(let error):
print(error)
}
}

我希望这会有用。

有关这方面的更多信息,请参阅此链接。
https://github.com/SwiftyJSON/SwiftyJSON/issues/714

关于ios - 简单的 getJSON() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40473729/

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