代码之家  ›  专栏  ›  技术社区  ›  mihatel

键路径的Alamofire responseArray字符串数组

  •  0
  • mihatel  · 技术社区  · 7 年前

    我有一个rest调用,它返回键路径“data”的字符串数组[string],例如。。。

    {
      "data": [
        "1",
        "3",
        "5",
        "2",
        "4",
        "9"
      ]
    }
    

    responseArray(keyPath: "data") ,但得到第行的编译错误 *.responseArray(keyPath: "data") {(response: DataResponse<[String]>) in*

    部分请求示例

    alamofireManager.request(url)
            .responseArray(keyPath: "data") {(response: DataResponse<[String]>) in
            if response.result.isSuccess {
               if let data = response.result.value {
                    //process success
                } else {
                    // handle error
                }
            }
            ...
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   Community CDub    4 年前

    https://github.com/Hearst-DD/ObjectMapper/issues/487 ,以下是建议的解决方案:

    在这种情况下,我建议直接从Alamofire响应中访问数据。您应该能够简单地将其转换为[字符串]。


    使用Swift的4编码(无外部依赖):

    struct APIResponse: Decodable {
        let data: [String]
    }
    
    let url = "https://api.myjson.com/bins/1cm14l"
    Alamofire.request(url).responseData { (response) in
    
        if response.result.isSuccess {
            if let jsonData = response.result.value,
                let values = try? JSONDecoder().decode(APIResponse.self, from: jsonData).data {
                //process success
                print(values)
            } else {
                // handle error
            }
        }
    }