В Swift с Moya и Codable, как я могу проанализировать вложенный контент JSON из указанного ключа c, отрисованного из бэкэнда? - PullRequest
0 голосов
/ 16 марта 2020

Так что вопрос на самом деле очень прост, я уже искал в Google, и много ответов было об использовании enum CodingKeys. Но мой API c требует, чтобы я следовал:

{"result": "yes or no", "info": "any info messages ....", "server_data": {"email ":" xxx@xxx.com ", first_name:" lalala ", .......}}

, что означает, что мне всегда нужно взять содержимое или материал внутри ключа" server_data ", прежде чем я помещу его в JSONDecoder (). Decode (User.self, from: здесь ...)

Поскольку я знаю, что легко сделать как result_from_server ["server_data"] как! [String: Any], чтобы получить данные в ключе "server_data", но это был бы словарь, есть ли простой и надежный способ выбрать данные из ключа "server_data" и сделать что-то (не сложное), а затем поместить их в JSONDecoder (). Decode (User.self, from: in here ...) все еще как Тип данных? Спасибо.

Моя модель пользователя: User.swift:

struct User: Codable {
let email: String
let username: String
let firstName: String
let lastName: String

enum CodingKeys: String, CodingKey {
    case email = "email"
    case username = "username"
    case firstName = "first_name"
    case lastName = "last_name"
}

}

Большое спасибо.

1 Ответ

0 голосов
/ 16 марта 2020

Попробуйте сторонний репозиторий Handy JSON, было бы проще работать с данными. И конечно модель все еще нужна. Нет никакого способа позволить этому go, если вы не используете result_from_server["server_data"] as! [String: Any].

...