gpt4 book ai didi

json - 如何使用 Gloss 将 Alamofire 的响应转换为 [JSON]?

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:14 24 4
gpt4 key购买 nike

我正在用 Gloss 替换 SwifyJSON 库。我在将 WS 响应转换为 JSON 格式时遇到问题。在 SwiftyJSON 中,我是这样做的:

guard let data = response.result.value else  {
...
return
}

let jsonData = JSON(data)

我的回复是这样的:

[{
"lat": "45.2",
"lon": "-79.38333",
"name": "Sample"
}, {
"lat": "23.43",
"lon": "45.3",
"name": "Sample"
}]

我需要从中创建一个 JSON 对象数组 ([JSON]),以便我可以在这个方法中使用:

let jsonArray = ?
guard let destinations = [Destination].fromJSONArray(jsonArray) else
{
...
return
}

我试过:

guard let data = response.result.value as? [(String,AnyObject)] else  {
...
return
}

guard let data = response.result.value as? [Gloss.JSON] else  {
...
return
}

第一个说:无法将类型“[(String, AnyObject)]”的值转换为预期的参数类型“[JSON]”第二:条件绑定(bind)的初始化器必须是 Optional 类型,而不是 '[Destination]'

最佳答案

我遇到了完全相同的问题,问题中出现了完全相同的“第一”和“第二”错误消息。贝娄是我如何解决它的摘录:

import Gloss
import Alamofire

...

Alamofire.request(.GET, url, parameters: params).responseJSON {
response in switch response.result {
case .Success(let json):
// Here, stations is already an array of Station class
let stations = [Station].fromJSONArray(json as! [Gloss.JSON])
...
...
}

下面是我的 Station 类:

import Gloss

class Station: Decodable {
var id: Int = 0
var attribute1: Int = 0
var attribute2: Int = 0

init(id: Int, attribute1: Int, attribute2: Int) {
super.init()
self.id = id
self.attribute1 = attribute1
self.attribute2 = attribute2
}

required init?(json: JSON) {
super.init()
self.id = ("id" <~~ json)!
self.attribute1 = ("attribute1" <~~ json)!
self.attribute2 = ("attribute2" <~~ json)!
}
}

关于json - 如何使用 Gloss 将 Alamofire 的响应转换为 [JSON]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527892/

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