2017-04-27 74 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值的字符串,因此多數民衆贊成不可能的。

相關問題