Swift 4-如何在UIAlert中显示来自JSON Alamofire的错误响应

问题描述 投票:0回答:1

我坚持认为自己是愚蠢的东西。

如果我从API收到一个错误,我想显示一个错误。

在示例波纹管中,我有2个错误,所以我想在我的警报消息中显示2行。

这是我从Alamofire得到的:

let swiftyJsonVar = JSON(response.result.value!):
▿ {
  "errors" : {
    "tva" : [
      "Tax must be numeric."
    ],
    "data_id" : [
      "Data id must exist"
    ]
  },
  "message" : "The given data was invalid."
}
  - rawArray : 0 elements
  ▿ rawDictionary : 2 elements
    ▿ 0 : 2 elements
      - key : "errors"
      ▿ value : 2 elements
        ▿ 0 : 2 elements
          - key : "tva"
          ▿ value : 1 element
            - 0 : Tax must be numeric.
        ▿ 1 : 2 elements
          - key : "data_id"
          ▿ value : 1 element
            - 0 : Data id must exist
    ▿ 1 : 2 elements
      - key : "message"
      - value : The given data was invalid.
  - rawString : ""
  - rawNumber : 0
  - rawNull : <null>
  - rawBool : false
  - type : SwiftyJSON.Type.dictionary
  - error : nil

这是我尝试过的:

SharedClass.sharedInstance.alertTitle(view: self, title: "Error".localized, message: "\(swiftyJsonVar["errors"].description)")

但显示此:

"{\n  \"errors\" : {\n    \"tva\" : [\n      \"Tax must be numeric.\"\n    ],\n    \"data_id\" : [\n      \"Data id must exist\"\n    ]\n  },\n  \"message\" : \"The given data was invalid.\"\n}"

在这种情况下,我想说谎,应该在两行上显示:

tva: Tax must be numeric.
data_id: Data id must exist

因此,根据收到的错误数量,它将显示n行。

感谢您的帮助

swift xcode alamofire uialertcontroller
1个回答
0
投票

错误是字典,您需要使用键访问它

for key in errors.keys {

            if let val = errors[key] {
            errorString = errorString + "\(key):\(val)\n"
            }

        }

        print(errorString)
© www.soinside.com 2019 - 2024. All rights reserved.