我的返回数据表单 AFNetworking JSON 未正确显示

Posted

技术标签:

【中文标题】我的返回数据表单 AFNetworking JSON 未正确显示【英文标题】:My return data form AFNetworking JSON is not displaying properly 【发布时间】:2013-08-01 02:20:47 【问题描述】:

现在遇到问题。尝试谷歌搜索解决方案,但仍然无法获得任何解决方案。如果有人能帮我解决这个问题,我将不胜感激

基本上我正在使用 AFNetworking 库使用 OneMap API。我得到的返回数据,当我 NSLog 它时, : 被替换为 = 而 [ 被替换为 (

显然,POST 方法不起作用,OneMap 是否只支持 GET?

当我将其转换为字符串并使用 UTF8 对其进行编码时,它会以正确的格式记录,但我无法直接从字符串中检索键值对吗?

这是我用来使用它的代码的 sn-p:

-(void)getDrivingDirections:(NSArray *)coords 目的地:(NSArray *)dest

NSString *destination = [dest componentsJoinedByString:@","];
NSString *currentLocation = [coords componentsJoinedByString:@","];
NSString *routeStops = [[NSString alloc]initWithFormat:@"%@;%@",currentLocation,destination];



NSString *dataURL = [[NSString alloc]initWithFormat:@"http://www.onemap.sg/API/services.svc/route/solve?token=%@&routeStops=%@",tokenString,routeStops];

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:dataURL]];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET"
                                                        path:dataURL
                                                  parameters:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

[httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) 
    NSLog(@"%@",responseObject);
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    NSLog(@"Error: %@", error);
    [MMProgressHUD dismissWithSuccess:@"Something went wrong :("];
];

[operation start];

这里是返回的sn-p:http://pastebin.com/Sa0U0tYf(太长了,直接贴在这里)

谢谢!

【问题讨论】:

NSLog 是什么样的? NSLog 返回包含在最后一个链接中。 pastebin 的链接。这基本上是我对 api 消费的整个 NSLog 回报 怎么显示不正常?看起来你有一本字典。当您打印到控制台时,它将以该格式打印。 JSON 中使用的 : 现在变成了 = 并且 [ used 变成了(通常我使用的其他 JSON,我可以使用 [[data objectForKey:@"directions"] 访问它objectForKey:@"features"]。但在这种情况下,这会崩溃。 是的,它就是这样打印出来的。尝试将您的响应分配给 NSDictionary。完成此操作后,您将能够轻松管理响应。 【参考方案1】:

如果您希望返回 JSON,为什么不尝试使用AFJSONRequestOperation?响应对象将是一个 NSDictionary,其中包含 JSON 响应的内容,并使用内置的 NSJSONSerialization 进行解析。

【讨论】:

以上是关于我的返回数据表单 AFNetworking JSON 未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 发布表单数据

AFNetworking 和 id reponseObject 不工作且无法恢复内容

AFNetworking 完成后返回数据

AFNetworking 未在块内同步返回数据

AFNetworking 2.0 多部分/表单数据上传到 mySQL

如何在afnetworking中的AFHTTPRequestOperationManager请求中获得返回