【发布时间】:2017-06-01 10:56:30
【问题描述】:
我没有发现这里有什么问题,我正在通过 Alamofire 检索 JSON:
let JSON = response.result.value as! [String : Any]
print("JSON: \(JSON)")
let statusCode = response.response?.statusCode ?? 999
正在控制台中打印:
JSON: ["message": <null>, "value": <__NSArray0 0x174011b30>(
)
, "error": 0]
因此 JSON 设置正确。 然后,我在 statusCode 分配上的 print(然后是相同的范围)之后立即设置了一个断点,但是当我在控制台 po JSON 中输入时,我收到以下错误:
(lldb) po JSON 错误::3:1:错误:使用未解析的标识符“JSON”
因此之后的所有行都失败了:
let resultCode = JSON["error"] as! Int
let resultMessage = JSON["message"] as! String
let resultValue = JSON["value"] as! [AnyObject]
有人能弄清楚为什么会这样吗?这是带有 Xcode 8.3.2 的 Swift 3.1
json 是:
{
"error": false,
"message": null,
"value": [
{
"id": 0,
"deviceId": "E5E3ED6B-8645-4894-8939-DC6AC7B4C37E"
}
]
}
【问题讨论】:
-
也添加你的 json 格式。
-
第一次打印:
print(response.result.value ?? "No Value is coming from JSON")首先,如果你从 json 获取值,那么请把你的 JSON 值放在这里。 -
控制台日志告诉你
"message": <null>,所以你的代码在let resultMessage = JSON["message"] as! String崩溃,因为值是空而不是字符串。 -
这不是重点,我试图在 print 能够打印之后立即 po 整个 JSON,但我收到了错误
-
@FabrizioProsperi 添加更多代码,看起来你在使用 JSON 的地方不在你初始化它的地方