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

Posted

技术标签:

【中文标题】在 Swift 4 中使用对象映射器解析嵌套对象【英文标题】:Parse Nested Object using Object Mapper in Swift 4 【发布时间】:2019-03-01 10:23:18 【问题描述】:

我有如下 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 后如何获取“详细信息”吗?

让我知道如何将解析直接转换为数字?我试了很多次都做不到。

【问题讨论】:

【参考方案1】:

您无法解析嵌套在 PQR 之后的内容,因为它是 JSON 数组而不是 JSON 对象。所以,如果你确定它只是数组的第一个元素,你可以这样做。

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 解析为一个数组,然后解析其中的各个项目

【讨论】:

谢谢哥们!!在发布之前我一直在尝试 map["XYZ.ABC.PQR[0].details.date"] :D

以上是关于在 Swift 4 中使用对象映射器解析嵌套对象的主要内容,如果未能解决你的问题,请参考以下文章

Spring 4 中 Websockets 的自定义对象映射器

对象映射器 - 解析 [AnyObject] 的数组

MapStruct使用说明

Symfony 奏鸣曲 - 形式映射器

具有核心数据的 Alamofire 对象映射器

使用自动映射器映射对象列表