【发布时间】:2016-10-06 18:57:10
【问题描述】:
我有一个嵌套的领域对象,嵌套对象中有多个嵌套的NSDate 属性。我正在使用this answer 将嵌套的领域对象转换为NSDictionary,但我不知道如何将NSDictionary 转换为实际的JSON。
当我使用NSJSONSerialization.dataWithJSONObject() 时,出现错误:'Invalid type in JSON write (__NSTaggedDate)'
据我了解,我必须首先将NSDate 属性转换为NSString。问题是我不知道如何深入嵌套的对象来做到这一点。
此代码生成'Invalid type in JSON write (__NSTaggedDate)' 错误:
let exercises = realm.objects(ExerciseProgram).first
let dic = exercises!.toDictionary()
do {
if let postData: NSData = try NSJSONSerialization.dataWithJSONObject(dic, options: NSJSONWritingOptions.PrettyPrinted) {
let json = NSString(data: postData, encoding: NSUTF8StringEncoding)! as String
print(json)
}
} catch let error as NSError {
print(error)
我的对象的简化版本:
final class ExerciseProgram: Object {
dynamic var name: String = ""
dynamic var startDate = NSDate()
dynamic var userProfile: User?
var program = List<Exercise>()
}
final class Exercise: Object {
dynamic var name = ""
dynamic var notes: String?
var workoutDiary = List<Workout>()
dynamic var goal = 0
}
final class Workout: Object {
dynamic var date = NSDate()
var sets = List<WorkSet>()
}
【问题讨论】:
标签: ios json swift dictionary realm