我正在尝试将一些JSON发送到Rails后端。序列化有效负载(NSDictionary)时,空数组的编码为nil而不是[](空数组)。
iOS上不支持JSON编码为空的NSArray吗?
我尝试更改dataWithJSONObject中的'options':没有成功。 发送@“[]”作为普通的'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];
感谢您的帮助!
答案 0 :(得分:1)
我怀疑问题来自Rails,而不是来自iOS,自3.2.11以来,Rails中出现了与安全漏洞有关的问题
https://github.com/rails/rails/issues/8832
https://github.com/rails/strong_parameters/issues/82
例如:
在您的身体{"bookmarks":[]}
在Rails中被序列化为:{"bookmarks"=>nil}
为了确定问题的来源,您应该使用像Charles这样的代理检查请求。