Как быстро получить доступ к элементу из объекта json внутри словаря - PullRequest
0 голосов
/ 14 июля 2020

Я получаю от сервера строку в качестве ответа на вызов API, который представляет собой закодированный токен. Я декодирую токен и получаю эту полезную нагрузку. Я могу получить доступ к значению "данные" или "iat" как к паре "ключ-значение", но как l oop выбросить и получить доступ к элементу внутри ключа "data"? Пожалуйста, помогите.

["iat": 1594655088, "data": 
[{"questionCode":"7a75bf82baea11eabffcfa5fb99b9064","question":"In which country you need to 
visit to explore Petra? ","image":"https://tbbd-flight.s3.ap-southeast- 
1.amazonaws.com/quiz/UihDZXwomcu-d2viNsL7UiewQYiqqpXJ.png","options": 
[{"answerCode":"7a766accbaea11ea8317fa5fb99b9064","answer":"Malaysia "}, 
{"answerCode":"7a766b94baea11eaaf95fa5fb99b9064","answer":"Jordan "}, 
{"answerCode":"7a766c02baea11ea8b10fa5fb99b9064","answer":"Vietnam "}, 
{"answerCode":"7a766c66baea11eaa920fa5fb99b9064","answer":"Australia "}]},

{"questionCode":"8b02bff8baea11ea9882fa5fb99b9064","question":"Worlds one of the most 
luxarious hotel \"Burj Al Arab\"  in which country?","image":"https://tbbd-flight.s3.ap- 
southeast-1.amazonaws.com/quiz/QTKKvpJxhWY7DA-G4bhnOdPoQ02WsR4o.png","options": 
[{"answerCode":"8b036cd2baea11eaaa03fa5fb99b9064","answer":"France"}, 
{"answerCode":"8b036d9abaea11ea8085fa5fb99b9064","answer":"Dubai"}, 
{"answerCode":"8b036e12baea11eabafefa5fb99b9064","answer":"England"}, 
{"answerCode":"8b036e80baea11eabf20fa5fb99b9064","answer":"Canada"}]}
]]

1 Ответ

0 голосов
/ 14 июля 2020

Используйте Codable для декодирования вышеуказанного JSON data с использованием следующих моделей,

struct Response: Codable {
    let iat: Int
    let data: [Question]
}

struct Question: Codable {
    let questionCode, question: String
    let image: String
    let options: [Option]
}

Разбирайте JSON data вот так,

do {
    let response = try JSONDecoder().decode(Response.self, from: data)
    let questions = response.data
    questions.forEach {
        print($0.questionCode)
        //use more fields here...
    }
} catch {
    print(error)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...