Я пытаюсь отправить некоторый JSON на серверную часть Rails. При сериализации полезной нагрузки (NSDictionary) пустой массив кодируется как nil вместо [ ] (пустой массив).
Кодирует ли JSON пустой NSArray, поскольку [] не поддерживается в iOS?
Я попытался изменить «параметры» в dataWithJSONObject: безуспешно. Отправка по @"[]" как обычной старой NSString также не работает.
Вот код:
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:payload options:NSJSONReadingMutableLeaves error:&error];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
AFJSONRequestOperation *authRequest = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:successBlock failure:failBlock];
[authRequest start];
Спасибо за помощь!
NSError *
в аргументerror:
, а затем проверить его по возвращении. - person   schedule 10.08.2013[]
определенно является действительным JSON. - person Hot Licks   schedule 10.08.2013@{@"key": @[]}
преобразуется в данные JSON{"key":[]}
. - person Martin R   schedule 10.08.2013nil
- я думал, что он возвращает строку (без кавычек)null
, которая, ну, представляет собой JSON-представление для null.nil
всегда указывает на ошибку.) - person Hot Licks   schedule 10.08.2013NSJSONReadingMutableLeaves
— это возможность читать JSON, а не записывать JSON. - person Martin R   schedule 10.08.2013payload
и вывод[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]
. - person Martin R   schedule 10.08.2013payload
— этоNSDictionary
, так почему же у вас есть пустой массив[]
в качестве объекта верхнего уровня? Кроме того, отправкаNSString
, содержащая@"[]"
… куда? В метод сериализации JSON? - person Tricertops   schedule 10.08.2013