Невозможно преобразовать значения 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,

Другие вопросы по тегам