2017-01-19 11 views
0

辞書の配列であるWeb APIレスポンスを解析しています。各辞書は、順番に、辞書の入れ子配列を有する。どのように私はそれを解析するのですか? Plはいくつかのコードサンプルを提供します。オブジェクトマッパーを使用して辞書のネストされた配列を解析する

私のAPIレスポンスは、これまでされており、

これは、全体の応答のための私のモデルであり、

(
      { 
     FilingStatusId = 0; 
     FormName = "MISC"; 
     OrderId = 0; 
     RecipientList =    (
          { 
       FilingStatusId = 0; 
       FormId = 1; 
       FormName = "MISC"; 
       PayerId = 26142; 
       PayerName = bsbbshs; 
       RecipientId = 221438; 
       RecipientName = tests; 
       ReturnId = 209998; 
       UserId = 0; 
      }, 
          { 
       FilingStatusId = 0; 
       FormId = 1; 
       FormName = "MISC"; 
       PayerId = 26142; 
       PayerName = bsbbshs; 
       RecipientId = 221438; 
       RecipientName = tests; 
       ReturnId = 209998; 
       UserId = 0; 
      } 
     ); 
    }, 
     { 
     FilingStatusId = 0; 
     FormName = "MISC"; 
     OrderId = 0; 
     RecipientList =    (
          { 
       FilingStatusId = 0; 
       FormId = 1; 
       FormName = "MISC"; 
       PayerId = 26142; 
       PayerName = bsbbshs; 
       RecipientId = 221438; 
       RecipientName = tests; 
       ReturnId = 209998; 
       UserId = 0; 
      }, 
          { 
       FilingStatusId = 0; 
       FormId = 1; 
       FormName = "MISC"; 
       PayerId = 26142; 
       PayerName = bsbbshs; 
       RecipientId = 221438; 
       RecipientName = tests; 
       ReturnId = 209998; 
       UserId = 0; 
      } 
     ); 
    } 
); 

私のコードです - 私はパースしています今のところReturnModel

import UIKit 
import ObjectMapper 

class ReturnModel: Mappable 
{ 
var FilingStatusId : Int = 0 
var FormName : String = "" 
var OrderId : String = "" 
var RecipientList:[[String:Any]] = [[:]] 

required init?(map: Map) { 

} 

func mapping(map: Map) 
{ 
    FilingStatusId <- map["FilingStatusId"] 
    FormName <- map["FormName"] 
    OrderId <- map["OrderId"] 
    RecipientList <- map["RecipientList"] 
} 
} 

辞書としてのRecipientList。しかし、私はRecipientModelという別のモデルを持っています。このReturnModelの中でRecipientListを解析するにはどうすればよいですか?

答えて

3

あなたの最初のモデルは、外側の配列を表します。 2番目は内部配列を表します。ここではサンプル

import Foundation 
import ObjectMapper 


// RecipientModel is an array itself 
class RecipientModel: Mappable { 

var filingStatusId:Int 
var orderId: Int 
var formName: String 
var recipientList: [RecipientList] 

required init?(_ map: Map) { 

    filingStatusId = 0 
    orderId = 0 
    formName = "" 
    recipientList = [] 
} 

func mapping(map: Map) { 

    filingStatusId  <- map["FilingStatusId"] 
    orderId    <- map["OrderId"] 
    formName   <- map["FormName"] 
    recipientList  <- map["RecipientList"] 
} 
} 

ですそして今、あなたはあなたのRECIPIENTLISTのための別のモデルを作成します

class RecipientList: Mappable { 


var filingStatusId:Int 
var formId: Int 
var formName: String 

required init?(_ map: Map) { 

    filingStatusId = 0 
    formId = 0 
    formName = "" 
} 

func mapping(map: Map) { 

    filingStatusId  <- map["FilingStatusId"] 
    formId    <- map["FormId"] 
    formName   <- map["FormName"] 
} 
} 
1

Objectmapperは限りがマッピング可能に準拠してネストされたオブジェクトを処理します。

import UIKit 
    import ObjectMapper 

    class ReturnModel: Mappable 
    { 
    var FilingStatusId : Int = 0 
    var FormName : String = "" 
    var OrderId : String = "" 
    var RecipientList:[RecipientModel] = [] 

    required init?(map: Map) { 

    } 

    func mapping(map: Map) 
    { 
     FilingStatusId <- map["FilingStatusId"] 
     FormName <- map["FormName"] 
     OrderId <- map["OrderId"] 
     RecipientList <- map["RecipientList"] 
    } 
    } 
関連する問題