2016-05-24 5 views
1

私はオブジェクトをマップするために以下のリンクを使用しています。オブジェクトマッピング:キーを指定せずに配列オブジェクトをマップする方法

https://github.com/Hearst-DD/ObjectMapper

(下記にJson構造)serviceidsをマッピングしながら、私はキーなしで配列オブジェクトを問題に直面しています。

誰かがそれに取り組んでくれたら親切に助けてください。

よろしく、 Guddu。

JSON構造:消費者マッパークラスで

Consumer = (
    { 
address = "12120 Sunset Hills Road Reston Virginia"; 
       clientid = 280396; 
       consumerid = 280396; 
       lag = 0; 
       lat = 0; 
       name = "William Holland"; 
       zipcode = 64321; 
serviceids =     (
        5, 
        100, 
        101 
    ) 
} 

:Serviceidsクラスで

serviceIdsArray <- map["serviceids"] 
     serviceids = NSSet(array: serviceIdsArray!) 

func mapping(map: Map) { 

     serviceid <- map[?] 

    } 

答えて

0

モデルは次のようにする必要があります:

class JsonModel: Mappable { 
var address: String? 
var clientid: Int? 
var consumerid: Int? 
var lag: Int? 
var lat: Int? 
var name: String? 
var zipcode: Int? 
var serviceids: [Int]? 
required init?(_ map: Map) { 

} 

// Mappable 
func mapping(map: Map) { 
    address <- map["address"] 
    clientid <- map["clientid"] 
    consumerid <- map["consumerid"] 
    lag <- map["lag"] 
    lat <- map["lat"] 
    name <- map["name"] 
    zipcode <- map["zipcode"] 
    serviceids <- map["serviceids"] 
} 
} 

は、使用:

let json = [ 
     "address" : "12120 Sunset Hills Road Reston Virginia", 
     "clientid" : 280396, 
     "consumerid" : 280396, 
     "lag" : 0, 
     "lat" : 0, 
     "name" : "William Holland", 
     "zipcode" : 64321, 
     "serviceids" :[ 
      5, 
      100, 
      101 
     ] 
    ] 
    let model = JsonModel(JSON: son) 

serviceids単にアレイを、それ

+0

ためのモデルを作成する必要はありませんが、ここでのvar serviceidsを設定する方法というのが私の問題である:[INT] ?モデルクラスで。コアデータの属性を設定している間は、intの配列としては許されません。私はこれを手動で以下の行にクラッシュさせます: serviceids < - map ["services"] これを参考にしてください。 –

+0

[int]をNSDataに変換してコアデータに格納することはできますが、これは最善の方法ではありません。もし私があなただったら、オブジェクトマッパーがそれをうまくサポートしているので、私はストアするレルムを選択します。 –

関連する問題