2017-01-19 6 views
0

사전의 배열 인 웹 API 응답을 구문 분석하고 있습니다. 각 사전에는 차례대로 중첩 된 사전이 있습니다. 어떻게 해석합니까? Pl은 몇 가지 코드 샘플을 제공합니다.개체 매퍼를 사용하여 중첩 된 배열 사전 구문 분석

내 API 응답은,이 전체 응답 내 모델입니다

지금까지 IS

(
      { 
     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이라는 다른 모델이 있습니다. RecipientList를 파싱하려면이 ReturnModel 내부에서 어떻게 사용할 수 있습니까?

답변

3

첫 번째 모델은 외부 배열을 나타냅니다. 그리고 두 번째는 내부 배열을 나타냅니다. 다음은 샘플

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