【发布时间】:2016-01-25 14:45:33
【问题描述】:
我有一个包含 NSString 和 NSDate 数据的 json (dob)
我创建了一个NSDictionary,但是当我使用代码将其转换为数据时
NSData *requestData1 = [NSJSONSerialization dataWithJSONObject:json_inputDic options:0 error:&error];
它通过给出错误杀死
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__NSDate)'
我的问题是我需要通过 dob,因为 NSDate 是强制性的。我该如何解决?
例如
NSDate *newDate = [NSDate date];
[dic setValue:newDate forKey:@"dob"];
NSString *good = @"good";
[dic setValue:good forKey:@"good"];
NSLog(@"dic=%@",dic);
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error]; //it gives error
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonData as string:\n%@", jsonString);
【问题讨论】:
-
为什么不将 NSDate 转换为所需格式的 NSString 并从中创建 JSON 数据。
-
它需要通过 API 传递,因为它被强制为 NSDate
-
当然,dob 可能是
NSDate,但假设您将其发送到某个网络服务,那么该网络服务器可能甚至不知道NSDate是什么。它有自己的日期数据类型。问题是这个 Web 服务希望以什么格式来表示生日。是yyyy-MM-dd吗?dd/MM/yyyy?甚至可能只是dd/MM?
标签: ios objective-c json nsdate nsdictionary