我尝试从 JSON 序列化中提取值,但结果为 nil。
应用程序在 Swift2 下运行,因此问题开始于转换为 Swift 3。
let jsonResult = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
print(jsonResult!)
let mySuccess = jsonResult?["success"] as? Int
print (mySuccess!)
print(jsonResult!) 给出以下输出
{
"full_login" = 0;
"logged_in" = 1;
message = "<null>";
success = 1;
}
到目前为止一切都很好,我的解析正在工作,我现在已经从服务器获得了数据。
但是print(mySuccess!)给出了这个输出
fatal error: unexpectedly found nil while unwrapping an Optional value
所以我理解输出说代码在展开时发现 nil,所以我现在的问题是如何提取 "Success" 键的值,因为它在 Swift 2 下表现,但现在在 Swift 3 下不是这样吗?
更新
Sneak 发现了一个可能的问题,即 success = 1 没有“”,因此我调查后将更新问题答案。
最佳答案
您好,您可以使用OPTIONAL BINDING 的概念来检查 nil 值。
let jsonResult = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
print(jsonResult!)
if let mySuccess = jsonResult?["success"] as? Bool
{
print (mySuccess)
}
else
{
print ("Found nil")
}
关于ios - JSON解析后结果为nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127195/