无法将 JSON 数据解析为 Swift

Posted

技术标签:

【中文标题】无法将 JSON 数据解析为 Swift【英文标题】:Trouble parsing JSON data into Swift 【发布时间】:2018-11-03 14:59:27 【问题描述】:

我正在尝试将来自 Web 服务的 JSON 数据解析到我的 Swift 中

我的网络浏览器上的 JSON 输出:

 ["code":0,"message":"Check Username and Password....","userid":""]

Swift 代码:

  Alamofire.request(URL_USER_LOGIN, method: .post, parameters: parameters).responseJSON

    
    response in
    //printing response
    print(response)

    if let userJSON = response.result.value
    
        let userdata:Dictionary = userJSON as! Dictionary<String, Any>
        let message:Dictionary = userdata["message"] as! Dictionary<String, Any>

        print(message)


    

我想将 JSON 中的消息元素用于我的代码。但是我得到以下输出和错误:

    (
    
    code = 1;
    message = "Login Successfull";
    userid = 236;

)
     Could not cast value of type '__NSSingleObjectArrayI' (0x10fd94b98) to 'NSDictionary' (0x10fd958b8).
   2018-11-03 20:15:10.762929+0530 testDisplayTable[44610:2871941]
   Could not cast value of type '__NSSingleObjectArrayI' (0x10fd94b98) to 'NSDictionary' (0x10fd958b8).

如何成功获取message和print的值?有人可以向我展示我的案例的正确代码吗?提前致谢!

【问题讨论】:

与其更改 Swift 代码(无论如何你必须更改 message 的类型),更有效的解决方案是更改服务器上的 php 代码以发送字典。 How do I use JSON element with alamofire的可能重复 【参考方案1】:

这是一个数组而不是字典

if let userdata = userJSON as? [[String:Any]]  
   if let message = userdata[0]["message"] as? String 
      print(message)
   

【讨论】:

以上是关于无法将 JSON 数据解析为 Swift的主要内容,如果未能解决你的问题,请参考以下文章

Swift:无法解析 JSON 数据 [重复]

尝试从 Swift 2.0 中的 json 解析数据时出错?

Swift json 解析错误:无法将 NSCFConstantString 类型的值转换为 NSArray

Swift 中的 JSON 解析(iOS)

Swift 解析 JSON 时出现问题:无法将“__NSCFDictionary”类型的值转换为“NSArray”错误

Swift 将 JSON 解析为模型对象