gpt4 book ai didi

ios - AFNetworking 在格式化 JSON 时将我的 double 转换为带引号的字符串

转载 作者:行者123 更新时间:2023-12-01 16:54:13 24 4
gpt4 key购买 nike

我第一次尝试在一个项目上使用 AFNetworking 并且在设置将 float double 转换为 JSON 参数时遇到了麻烦。我正在创建一个带有键值对的 NSDictionary。 NSDictionary 仅接受对象,因此使用 [NSNumber numberWithDouble: 37.234567] 创建 double 值。都好。但是当我转储字典时,我得到:

Dict: {
day = Wednesday;
user = Meltemi;
lat = "37.234567";
long = "-120.123456";
}

其中,当作为 HTTP 请求提交时,变为: lat=%2237.234567%22long=%22-120.123456%22 并且 Sinatra 将它们接收为:
params: { "lat"=>"\"37.750256\"", "long"=>"\"-120.123456\"", ... }

我想要/需要的:
Dict: {
day = Wednesday;
user = Meltemi;
lat = 37.234567;
long = -120.123456;
}

API 很可能不是容错的,但是 如何强制 AFNetworking 丢失引号?

编辑:添加 AFHTTPClient 子类的初始化程序:
- (id)initWithBaseURL:(NSURL *)url {
self = [super initWithBaseURL:url];
if(!self) return nil;
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
[self setDefaultHeader:@"Accept" value:@"application/json"];
[self setParameterEncoding:AFJSONParameterEncoding];
[self setAuthorizationHeaderWithUsername:@"user" password:@"pwd"];
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]; // TODO: right place for this?

return self;
}

最佳答案

看起来您是在查询字符串中以 URL 形式编码的形式提交参数;查询字符串中的所有内容都是字符串。

相反,您应该将参数作为 JSON 发送。设置parameterEncoding HTTP 客户端的属性到 AFJSONParameterEncoding,一切都应该按预期工作。

关于ios - AFNetworking 在格式化 JSON 时将我的 double 转换为带引号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301845/

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