2017-10-05 6 views
-1
{ 
    "3": { 
    "title": "something" 
    }, 
    "28": { 
    "title": "something else" 
    } 
} 

ObjectMapperを使用してこのjsonをContentオブジェクトの配列にキャストするにはどうすればよいですか?ObjectMapper:マップされたオブジェクトの値としての辞書キー

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

ありがとうございます。スウィフト3では

答えて

0

: まず、あなたが

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. 
      } 
     } 
    } 
} 

希望のように、この辞書からすべてのキーを取得します。このkeysArray &を通してこの

keysArray = Array(dict.keys) 

今ループのように、この辞書からすべてのキーを取得助けになる。

1

私はyou'reはこのような何かを探していると思う:

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"] 
    } 
} 
関連する問題