使用 EasyMapping (Swift) 解析 Json 数组

Posted

技术标签:

【中文标题】使用 EasyMapping (Swift) 解析 Json 数组【英文标题】:Parse Json array with EasyMapping (Swift) 【发布时间】:2016-04-17 21:23:22 【问题描述】:

我必须使用 EasyMapping。当我从 Json 解析字典时,它工作得很好。但是现在我只需要解析一个对象数组,所以我没有任何关键路径。我有 Json:

[
    
        "key1": "dee",
        "key2": 3232
    ,
    
        "key1": "deeweewregre",
        "key2": 5555
    
]

所以我创建了 2 个自定义类。第一个是数组中的元素:

class TheEntry: EKObjectModel 
    var key1: String!
    var key2: Int!


extension TheEntry 
    override class func objectMapping() -> EKObjectMapping
        let mapping = EKObjectMapping(objectClass: self)
        mapping.mapPropertiesFromArray(["key1", "key2"])
        return mapping
    

另一个是数组本身:

class TheList: EKObjectModel 
    var entries: [TheEntry]!


extension TheList 
    override class func objectMapping() -> EKObjectMapping
        let mapping = EKObjectMapping(objectClass: self)
        mapping.hasMany(TheEntry.self, forKeyPath: mapping.rootPath)
        return mapping
    

但它不起作用。我的应用程序在 mapping.rootPath 上崩溃。但我不知道如何使用 Json 的根级别。

【问题讨论】:

【参考方案1】:

这样试试

mapping.hasMany(TheEntry.self, forKeyPath: "@self")

【讨论】:

以上是关于使用 EasyMapping (Swift) 解析 Json 数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 swift 3 更改解析推送通知

使用 Swift (NSArray) 解析 JSON

需要帮助使用 Alamofire 使用 Swift 解析 JSON

使用未解析的标识符 'json' (Swift 3) (Alamofire)

Swift之深入解析如何避免单元测试中的强制解析

Swift:使用未解析的标识符“addChild”