2017-10-05 85 views
-1
{ 
    "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" 
} 

在此先感謝。

回答

0

在斯威夫特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. 
      } 
     } 
    } 
} 

希望它有助於。

1

我認爲您尋找的是這樣的事情:

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