在Json解码中模糊地使用下标 - Swift 2

时间:2017-01-28 14:23:50

标签: swift alamofire

我正在尝试从服务器获取以下json响应:

[{"m", "OK"}]

我使用以下代码,当我在模拟器中播放时效果很好,但是当我在Apple商店中生成要上传的存档时,它有错误

  

模糊地使用'下标'

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()
                }
            }
    }
}

我尝试了几件事来解决这个错误,但没有解决。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

每个JSON对象都是字典或数组。你必须告诉Swift用键(作为字典)或整数索引(作为数组)下标它。看起来JSON这里是一个数组。改变这一行:

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