gpt4 book ai didi

json - 无法从 json 数据中提取值

转载 作者:行者123 更新时间:2023-11-30 12:37:24 26 4
gpt4 key购买 nike

我看到了许多解决此问题的问题和答案。我已经尝试过了,但我无法弄清楚。我已经访问了我的所有者服务器的responseJSON,没有问题。但现在我正在尝试使用第 3 方 API,但遇到了麻烦。我正在使用 Alamofire 和 SwiftyJSON。

让 json = JSON(数据: 数据)

这就是 json 的样子:

{"maxResults":50,"startAt":0,"isLast":true,"values":[{"id":1,"self":"https://stackrank.atlassian.net/rest/agile/1.0/board/1","name":"JI board","type":"scrum"},{"id":2,"self":"https://stackrank.atlassian.net/rest/agile/1.0/board/2","name":"Board2","type":"scrum"}]}

为什么我无法访问任何值?
json["maxResults"].numberValue 给我'0'
json["values"].arrayValue 给我一个空数组 []

我已经看到了很多关于编码等的答案......但我无法让它工作。

这是来自 Alamofire 的片段,显示了响应格式:

Alamofire.request(request).responseJSON {
response in
switch response.result {
case .success:
success(response.data!)

最佳答案

您获取的对象不能是 SwiftJSON 对象。这是完美运行的 Playground 代码(要求 SwiftyJSON.swift 位于 Sources 文件夹中):

let jsontext = "{\"maxResults\":50,\"startAt\":0,\"isLast\":true,\"values\":[{\"id\":1,\"self\":\"https://stackrank.atlassian.net/rest/agile/1.0/board/1\",\"name\":\"JI board\",\"type\":\"scrum\"},{\"id\":2,\"self\":\"https://stackrank.atlassian.net/rest/agile/1.0/board/2\",\"name\":\"Board2\",\"type\":\"scrum\"}]}"

let data = jsontext.data(using: .utf8)!
let json = JSON(data)

print(json["maxResults"].intValue)
print(json["values"].arrayValue)

这非常有效。

就原始数据而言,如下 another SO question proposed :

Alamofire.request(.GET, url).validate().responseJSON { response in
switch response.result {
case .Success(let data):
let json = JSON(data)
let maxResults = json["maxResults"].intValue
let values = json["values"].arrayValue
print(maxResults)
case .Failure(let error):
print("Request failed with error: \(error)")
}
}

关于json - 无法从 json 数据中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42704522/

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