如何从具有多个值的Codable结构中获取一个值?

时间:2019-05-07 04:56:19

标签: ios json swift codable

我的内部有一个很大的JSON响应

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

有3个单独的

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

我可以使用Codables访问第一个“ fareComponentGroupList”中的值

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

如何访问第二和第三fareComponentGroupList的值?

(对于这些愚蠢的问题,我感到抱歉,但是我对敏捷的Codables还是陌生的)

1 个答案:

答案 0 :(得分:1)

由于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)