ObjectMapper:字典键作为映射对象中的值

问题描述:

{ 
    "3": { 
    "title": "something" 
    }, 
    "28": { 
    "title": "something else" 
    } 
} 

如何将此json转换为使用ObjectMapper的内容对象数组?ObjectMapper:字典键作为映射对象中的值

struct Content: Mappable { 
    var id: String? //Expected value is 3, 28 
    var title: String? //Expected value is "something", "something else" 
} 

在此先感谢。

在斯威夫特3: 首先从本字典的所有键这样

keysArray = Array(dict.keys) 

通过这个keysArray &现在循环,你会得到从这个字典中的所有键,如

for i in 0..<keysArray.count { 
    if let key = keysArray[i] as? String { 
     //get your key here 
     if let singleObject = dict[key] as? [String: Any] { 
      if let value = singleObject["title"] as? String { 
       //get you value 
       // get both key & value. Now map it. Hope you get it. 
      } 
     } 
    } 
} 

希望它有助于。

我认为您寻找的是这样的事情:

JSON - 型号:

let content = Mapper<Content>().map(JSONString) 

型号 - JSON:

let json = Mapper().toJSONString(content, prettyPrint: true) 

而在此之前,你可以使用它,你需要将Content Model更改为以下内容:

struct Content: Mappable { 
    var id: String? //Expected value is 3, 28 
    var title: String? //Expected value is "something", "something else" 

    required init?(_ map: Map) { 

    } 

    // Mappable 
    func mapping(map: Map) { 
     id <- map["id"] 
     title <- map["title"] 
    } 
}