Невозможно преобразовать значения NSDictionary в json
У меня есть значения NSDictionary, которые я хочу преобразовать в строку Json, например:
{
body = "10-feb";
comments = (
);
complete = 1;
"created_at" = "2014-02-09T15:56:01Z";
"due_at" = "2014-01-10 20:00:00 +0000";
"due_on" = "2014-10-02";
id = 439824;
"notification_sent" = 0;
"notify_user" = 0;
"organization_id" = 972;
participants = (
);
reminders = (
);
starred = 0;
"updated_at" = "2014-02-09T15:56:01Z";
"user_id" = 11129;
}
И способ, которым я преобразовываю это в json:
- (NSString*) jsonStringWithPrettyPrint:(BOOL) prettyPrint str:(NSDictionary *)str {
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:str
options:(NSJSONWritingOptions) (prettyPrint ? NSJSONWritingPrettyPrinted : 0)
error:&error];
if (! jsonData) {
NSLog(@"jsonStringWithPrettyPrint: error: %@", error.localizedDescription);
return @"{}";
} else {
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
}
Я не знаю, почему он всегда не может конвертировать.
1 ответ
Решение
Объекты переданы в NSJSONSerialization
может содержать только NSDictionary
, NSArray
, NSString
, NSNumber
, или же NSNull
,
NSDate
объекты должны быть явно преобразованы в NSStrings
сначала с помощью NSDateFormatter
,