Как получить одно значение из Codable структуры с несколькими значениями? - PullRequest
0 голосов
/ 07 мая 2019

У меня большой ответ JSON, и внутри

{
    "availabilityResultList": [
        {
            "availabilityRouteList": [
                {
                    "availabilityByDateList": [
                        {
                            "originDestinationOptionList": [

есть 3 отдельных

 "originDestinationOptionList": [
    {
    "fareComponentGroupList":[...]
    },
    {
    "fareComponentGroupList":[...]
    },
    {
    "fareComponentGroupList":[...]
    },
],

. Я могу получить доступ к значениям в первом 'costComponentGroupList' с помощью Codables как

root.availabilityResultList.first?.availabilityRouteList.first?.availabilityByDateList.first?.originDestinationOptionList.first?.fareComponentGroupList.first?.xxx

Как получить доступ к значениям второго и третьего тарифа ComComponentGroupList?

(извините за эти глупые вопросы, но я новичок в быстрых Codables)

1 Ответ

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

Поскольку originDestinationOptionList возвращает массив словаря, просто извлеките его оттуда по индексу.

let originDestinationOptionList = root.availabilityResultList.first?.availabilityRouteList.first?.availabilityByDateList.first?.originDestinationOptionList

let firstobject = originDestinationOptionList[0]["fareComponentGroupList"]
let secondObject = originDestinationOptionList[1]["fareComponentGroupList"]

let firstObjectsFirstItem = firstObject[0]

Если вышеизложенное дает ошибку, это работает (Swift 5)

let originDestinationOptionList = root.availabilityResultList.first?.availabilityRouteList.first?.availabilityByDateList.first?.originDestinationOptionList

let firstobject = originDestinationOptionList[0].fareComponentGroupList.first

let firstObjectsFirstItem = firstObject?. (add the remaining part)
...