gpt4 book ai didi

iOS JSON 序列化空数组序列化为 nil 而不是 [ ]

转载 作者:行者123 更新时间:2023-11-29 13:07:55 25 4
gpt4 key购买 nike

我正在尝试将一些 JSON 发送到 Rails 后端。序列化有效负载 (NSDictionary) 时,空数组编码为 nil 而不是 [ ](空数组)。

iOS 不支持将空 NSArray 编码为 [] 的 JSON 吗?

我尝试更改 dataWithJSONObject: 中的“选项”,但没有成功。将 @"[]"作为常规 ol' 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];

感谢您的帮助!

最佳答案

我怀疑问题出在 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 这样的代理来检查请求。

关于iOS JSON 序列化空数组序列化为 nil 而不是 [ ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com