Как правильно объявить тип Array при инициализации структуры в Swift - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь инициализировать структуру, чтобы можно было проанализировать файл JSON в Swift.У меня написано следующее:

struct StopDescription: Decodable {
    let stopId: String
    let translocStopId: String
    let stopName: String
    let stopDesc: String
    let stopLat: String
    let stopLon: String
    let directionId: String
    let times: [String]
}

Чтобы разобрать этот код JSON:

{
    stop_id: "M1",
    transloc_stop_id: "4160714",
    stop_name: "blank",
    stop_desc: "blank",
    stop_lat: "142",
    stop_lon: "-171",
    direction_id: "1",
    times: [
        "7:00 AM",
        "7:30 AM",
        "8:00 AM",
        "8:30 AM",
        "8:45 AM",
        "9:00 AM",
        "9:30 AM",
        "10:00 AM",
        "10:30 AM",
        "11:00 AM",
        "11:30 AM"
    ]
}

Я не совсем уверен, что мое объявление массива для переменной timesправильный.Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 24 мая 2018

Да, это правильно.Обязательно добавьте перечисление CodingKeys или, более предпочтительно, используйте .convertFromSnakeCase в качестве keyDecodingStrategy при разборе JSON.

struct StopDescription: Codable {
    let stopId, translocStopId, stopName, stopDesc: String
    let stopLat, stopLon, directionId: String
    let times: [String]
}

let let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase

let stopDescription = try? decoder.decode(StopDescription.self, from: jsonData)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...