2017-04-27 86 views
0

我有以下儿子通过Web服务发送给我的字符串。我正在尝试访问其中的字典,并且出现错误。请有人建议吗?如何在我的情况下访问我的JSON数据 - swift

我的JSON字符串:

{"status":200,"message":"Registration success","firstname":"tommy","lastname":"tang","userId":17,"email":"[email protected]"} 

我对试图进入“状态”

  do{ 
       let jsonObject = try JSONSerialization.jsonObject(with: jsonData, options: []) 
       print("jsonObject: \(jsonObject)") 

       guard 
        let regArray = jsonObject as? [[String:String]] else{ 

         print("json messed up") 
       } 

       guard 
        let status = regArray["status"] as? String else{ 
         print("error") 
       } 
       print("status: \(status)") 

      }catch let error{ 
       print("print error: \(error)") 
      } 

     }else if let requestError = error{ 
      print("error detail: \(requestError)") 
     }else{ 
      print("unexpected error") 
     } 

,我得到的错误是“无法下标类型[字符串值码:字符串]与式字符串”

即使我使用的索引

let regArray = jsonObject as? [[String:Any]] 

我得到相同的错误

+1

您正在创建数组字典,而您的数据是字典格式。创建字典<字符串,字符串> –

+0

很简单:您的JSON是顶级字典(呃,它只是一个字典)。所以'让jsonSerialized为? [字符串:任何]'? – Larme

回答

0

用户ID和状态是Int。所以它必须是[String : Any]。它是简单的字典数组。

而在代码,更改

status = regArray["status"] as? String

status = regArray["status"] as? Int

因为你指定int值的字符串,因此多数民众赞成不可能的。

相关问题