Разбор ошибок JSON с помощью Swift - PullRequest
0 голосов
/ 16 мая 2019

Как лучше всего анализировать этот JSON с помощью swift?

{
    "message": "The given data was invalid.",
    "errors": {
        "first_name": [
            "The first name field is required."
        ],
        "last_name": [
            "The last name field is required."
        ],
        "email": [
            "The email field is required."
        ],
        "password": [
            "The password field is required."
        ],
        "dob": [
            "The dob field is required."
        ]
    }
}

Я использую эти декодируемые структуры

struct AuthError: Codable {
    let error: String?
    let errors: APIError
    let message: String
}
struct APIError: Codable {
    let email: [String]?
    let dob: [String]?
    let first_name: [String]?
    let last_name: [String]?
    let password: [String]?
}

, но он недостаточно гибок.

Мое приложение общается с веб-приложением, и я продолжаю сталкиваться с этой проблемой снова и снова, и, похоже, не могу решить ее правильно.Эти ошибки проверки являются динамическими, и время от времени может быть только одна ошибка, поэтому я пытаюсь подсчитать, какие ошибки были выброшены.Любая помощь будет оценена.

1 Ответ

1 голос
/ 16 мая 2019

Полагаю, вам нужно

struct AuthError: Codable {
  let message: String
  let errors: [String:[String]]
}

, поскольку ключ может не существовать, поэтому использование Codable со статическими ключами не удастся

let res = try! JSONDecoder().decode(AuthError.self, from: data)
if let fname = res.errors["first_name"]?.first {
  print(fname)
}

, также использование SwiftyJSON - еще один хороший вариантздесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...