如何使用 Swift ObjectMapper 在另一个 JSON 中处理转义的 emebed json
How to handle escaped emebed json within another JSON using Swift ObjectMapper
我正在尝试使用 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
导入 ObjectMapper
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
在上面之后总是 nil!谁能看出我做错了什么?
var Activity : [ActivityModel]?
表示它需要一个 ActivityModel 数组,但 Json 您发布的它不是一个数组。将 var Activity : [ActivityModel]?
更改为 var Activity : ActivityModel?
。
我正在尝试使用 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 导入 ObjectMapper
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
在上面之后总是 nil!谁能看出我做错了什么?
var Activity : [ActivityModel]?
表示它需要一个 ActivityModel 数组,但 Json 您发布的它不是一个数组。将 var Activity : [ActivityModel]?
更改为 var Activity : ActivityModel?
。