在Swift 4中使用对象映射器解析嵌套对象

时间:2019-03-01 10:23:19

标签: ios json swift parsing objectmapper

我有如下的JSON响应

{
    "XYZ": {
        "ABC": {
            "PQR": [
                {
                    "details": {
                        "date":1221,
                        "number": 30
                    }
                }
            ]
        }
    }
}

我想直接获取“日期”和“数字”的详细信息。无需分别解析XYZ,ABC,PQR和详细信息。

struct Trial: Mappable {
    var PQR!
    init() {}
    init?(map: Map) {}

    mutating func mapping(map: Map) {
        trialPeriod <- map["XYZ.ABC.PQR"]    
    }
}

我要解析到PQR。之后,我将无法解析。您能否让我知道解析到PQR后如何获得“详细信息”?

OR

让我知道如何将解析直接转换为数字吗?我尝试了很多次,但无法这样做。

1 个答案:

答案 0 :(得分:1)

您不能仅因为PQR是JSON数组而不是JSON对象而解析嵌套在PQR之后的内容。因此,如果确定它只是数组的第一个元素,则可以执行类似的操作。

struct Trial: Mappable {
    var PQR!
    init() {}
    init?(map: Map) {}

    mutating func mapping(map: Map) {
        trialPeriod <- map["XYZ.ABC.PQR.0.details.date"]
    }
}

请注意.0,它表示数组中的第一项。

或者更好的方法是尝试将XYZ.ABC.PQR解析为数组,然后解析其中的单个项目