2017-01-28 22 views
-3

我試圖從服務器獲取以下JSON響應:曖昧使用以JSON解碼的下標 - 斯威夫特2

[{"m", "OK"}] 

我用下面的代碼,當我在模擬器玩完美的作品,但是當我產生歸檔在蘋果商店有錯誤

不明確使用「標」

func funcao(completo:() -> Void, falha:() -> Void){ 
    let parametros = [ 
     "operacao" : "update", 
     "tabela" : "1" 
    ] 

    Alamofire.request(.POST, UrlServerPOST, parameters: parametros) 
     .responseJSON { response in 

      if let JSON = response.result.value { 
       print("JSON: \(JSON)") 

       if let item = JSON[0] as? [String: String] { //Error here 
        if let resp = item["m"] as? String { 
         print(resp) 
         if resp == "OK" { 
          completo() 
         } 
         else 
         { 
          falha() 
         } 
        } 
        else 
        { 
         falha() 
        } 
       } 
       else 
       { 
        falha() 
       } 
      } 
    } 
} 
0123的上傳

我嘗試了幾件事來解決這個錯誤,但沒有解決。任何人都知道如何解決此問題?

+0

'JSON'是否有下標運算符?或者你應該先嚐試將'JSON'強制轉換爲'[[String:String]]? – luk2302

+0

[[String:String]]對我不起作用@ luk2302 –

+0

告訴編譯器'response.result.value'的類型 – vadian

回答

1

每個JSON對象是一個字典或一個數組。你必須告訴Swift用一個鍵(作爲字典)或者一個整數索引(作爲一個數組)來標記它。看起來像JSON這裏是一個數組。更改此行:

if let JSON = response.result.value as? [AnyObject] { 
    // ... 
}