无法从 json 数据中提取价值

Can't pull value from json data

我看到了很多关于这个问题的问题和答案。我已经试过了,但我想不通。我已经访问了我的所有者服务器的响应 JSON 没问题。但是现在我正在尝试使用第 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 对象。这是完美运行的游乐场代码(需要 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)

这非常有效。

就原始数据而言,:

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)")
    }
}