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"]
}
}