【发布时间】:2016-12-31 19:47:43
【问题描述】:
我在过去 2 天后遇到了问题。我无法将我的 JSON 转换为领域对象。
我有一个像下面这样的 json:
{
"gender" : "male",
"id" : "123456789",
"age_range" : {
"min" : 21
},
"last_name" : "LastName"
}
我有这个领域模型:
class UserObject: Object {
dynamic var userId: String = ""
dynamic var lastName: String?
dynamic var gender: String?
var ageRange = List<AgeRangeObject>()
required convenience init?(_ map: Map) {
self.init()
}
}
class AgeRangeObject: Object {
dynamic var min: Int = 0
}
以及我尝试使用 ObjectMapper 创建此模型的实例以将 json 解析为字典然后创建模型实例的方式:
let userJSONModel = Mapper<User>().map(jsonString)
let realm = try! Realm()
do {
try realm.write {
let dict: [String : AnyObject] = [
"userId" : (userJSONModel?.userId)!,
"ageRange" : (userJSONModel?.ageRange)!,
"lastName" : (userJSONModel?.lastName)!,
"gender" : (userJSONModel?.gender)!
]
let userModel = UserObject(value: dict)
realm.add(userModel)
}
} catch {
print("Exception")
}
问题出现在这一行:let userModel = UserObject(value: dict)
我收到以下错误:
*** Terminating app due to uncaught exception 'RLMException', reason: 'Invalid value 'min' to initialize object of type 'AgeRangeObject': missing key 'min''
我正在查看stackoverflow:
Nested Arrays throwing error in realm.create(value: JSON) for Swift
How to convert Realm object to JSON with nested NSDate properties?
但我的情况不同。 你知道那个年龄段的字典有什么问题吗?为什么它不能很好地解析它? 谢谢。
【问题讨论】:
标签: json swift dictionary realm