Object Mapper不访问嵌套数组

时间:2017-01-17 06:53:40

标签: ios json swift3 objectmapper

我有以下JSON,我与ObjectMapper一起使用:

Open Api

回复代码段

{
  "data": [
    {
      "CategoryName": "רוגע",
      "CategoryID": "63",
      "CategoryDate": "2016-08-26 02:12:05",
      "CategoryImage": "relax.png",
      "SubCategoryArray": [
        {
          "SubCategoryName": "רוגע",
          "SubCategoryRefID": "63",
          "SubCategoryID": "86",
          "SubCategoryDate": "2016-08-28 02:57:07",
          "TextArray": [
            {
              "TextID": "32",
              "Text": "<p dir=\"rtl\"><span style=\"font-size:48px\"><strong><span dir=\"RTL\" lang=\"HE\" style=\"font-family:Arial\">פרופורציה</span></strong> . הכול הבל הבלים. חולף כהרף עין. אז לנשום.</span></p>\r\n"
            }, 

我的问题是从&#34; SubCategoryArray&#34;和&#34; TextArray&#34;

获取数据

我尝试在我的映射中执行以下操作:

import UIKit
import ObjectMapper

class APIResult: Mappable {
    var data : [dataArray]?
    required init?(map: Map){
    }
    func mapping(map: Map) {

        data <- map["data"]
    }
}
class dataArray: Mappable{
    var CategoryName: String?
     var CategoryID: String?
     var CategoryDate: String?
     var CategoryImage: String?
    var SubCategoryArray: SubCategoryArray?
    required init?(map: Map){
    }
    func mapping(map: Map) {

        CategoryName <- map["CategoryName"]
        CategoryID <- map["CategoryID"]
        CategoryDate <- map["CategoryDate"]
        CategoryImage <- map["CategoryImage"]
        SubCategoryArray <- map["SubCategoryArray"]
    }    
}
class SubCategoryArray: Mappable {
    var SubCategoryName: String?
    var SubCategoryRefID: String?
    var SubCategoryID: String?
    var SubCategoryDate: String?
    var TextArray: TextArray?
    required init?(map: Map){
    }
    func mapping(map: Map) {

        SubCategoryName <- map["SubCategoryName"]
        SubCategoryRefID <- map["SubCategoryRefID"]
        SubCategoryID <- map["SubCategoryID"]
        SubCategoryDate <- map["SubCategoryDate"]
        TextArray <-  map["TextArray"]
    }
}
class TextArray: Mappable {
    var TextID: String?
    var Text:String?
    required init?(map: Map){
    }
    func mapping(map: Map) {

        TextID <- map["TextID"]
        Text <- map["Text"]
//        SubCategoryID <- map["SubCategoryID"]
//        SubCategoryDate <- map["SubCategoryDate"]
//        TextArray <-  map["TextArray"]
    }
}

请指出我做错了什么。

1 个答案:

答案 0 :(得分:1)

这是您映射此数据的方式

import Foundation
import ObjectMapper

class customData: Mappable {


var categoryName: String = ""
var categoryId: String = ""
var subCategoryArray: [SubCategoryArray] = []

required init?(_ map: Map) {

}

func mapping(map: Map) {

    categoryName            <- map["data.CategoryName"]
    categoryId              <- map["data.CategoryID"]
    subCategoryArray        <- map["data.SubCategoryArray"]
}
}

class SubCategoryArray: Mappable {


var SubCategoryName: String = ""
var SubCategoryRefID: String = ""

var textArray: [TextArray] = []
required init?(_ map: Map) {

}

func mapping(map: Map) {

    SubCategoryName         <- map["SubCategoryName"]
    SubCategoryRefID        <- map["SubCategoryRefID"]
    textArray               <- map["TextArray"]

}
}

class TextArray: Mappable {


var TextID: String = ""
var Text: String = ""

required init?(_ map: Map) {

}

func mapping(map: Map) {

    TextID              <- map["TextID"]
    Text                <- map["Text"]
}
}

如果您发现任何困难,请告诉我。