【问题标题】:How to handle escaped emebed json within another JSON using Swift ObjectMapper如何使用 Swift ObjectMapper 在另一个 JSON 中处理转义的嵌入 json
【发布时间】:2016-02-23 09:37:24
【问题描述】:

我正在尝试使用 ObjectMapper 将 json 字符串映射回我的数据模型。下面是我正在尝试的 JSON 字符串:

{
  "UserName":"test",
  "StudentNo":71129,
  "Activity":{
    "name":"test name",
    "semester":"1",
    "activityHistory":"{ \"id\": \"111111\", \"items\": [ { \"datetime\": \"201923022016\", \"mediaFormat\": \"online\" } ,{ \"datetime\": \"201923022016\", \"mediaFormat\": \"online\" } ,{ \"datetime\": \"201923022016\", \"mediaFormat\": \"online\" } ]}"
  }
 }

json 有效负载中的嵌入式 json 来自外部 API,我无法控制它。

我的模型类:

导入 UIKit 导入对象映射器

    class studentModel: Mappable {
        var UserName: String?
        var StudentNo : String?
        var Activity : [ActivityModel]?

        init() {}

        required init?(_ map: Map) {
        }

        // Mappable
        func mapping(map: Map) {
            UserName             <- map["userName"]
            StudentNo         <- map["stNO"]
            Activity            <- map["Activity"]
        }
    }


    class ActivityModel: Mappable {
        var name: String?
        var semester : Int?
        var activityHistory: String?

        init() {}

        required init?(_ map: Map) {
        }

        // Mappable
        func mapping(map: Map) {
            name             <- map["name"]
            semester         <- map["semester"]
            activityHistory  <- map["activityHistory"]
        }
    }

我似乎无法成功映射 json 字符串,并且知道问题出在 activityHistroy 上,因为如果我将该字段的值更改为简单的值(“TEST”)并将我的模型从var Activity : [ActivityModel]?var Activity : String? 我可以得到整个映射。

映射到对象:

var studentModel = Mapper<studentModel>().map(JSON)!

studentModel.Activity 在上面之后总是为零!谁能看到我做错了什么?

【问题讨论】:

    标签: ios json swift objectmapper


    【解决方案1】:

    var Activity : [ActivityModel]? 表示它需要一个 ActivityModel 数组,但您发布的 Json 不是数组。将 var Activity : [ActivityModel]? 更改为 var Activity : ActivityModel?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多