gpt4 book ai didi

ios - 解析 JSON 响应

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:50 26 4
gpt4 key购买 nike

我正在使用 AFJSONRequestOperation 请求远程 API:

 NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

//Remove the SVProgressHUD view
[SVProgressHUD dismiss];

//Check for the value returned from the server

NSData *jsonData = [JSON dataUsingEncoding:NSUTF8StringEncoding];//This line cause crash
NSArray *arr = [NSJSONSerialization JSONObjectWithData:jsonData
options:0
error:nil];
loginDic=[[NSDictionary alloc]init];
loginDic=[arr objectAtIndex:0];
NSLog(@"%@",loginDic);

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {

NSLog(@"Request Failed with Error: %@", [error.userInfo objectForKey:@"NSLocalizedDescription"]);
}];
[operation start];
[SVProgressHUD showWithStatus:@"Loading"];

但是,应用程序崩溃了,我收到了这个错误:

[__NSCFDictionary dataUsingEncoding:]: unrecognized selector sent to instance

这是返回的 JSON 对象的 NSLog:

 Result =     (
{
operation = 5;
result = 1;
}
);

我是否遗漏了什么,因为我认为我没有正确解析 JSON 对象。请指正。

最佳答案

看起来 AFJSONRequestOperation 正在为您将 JSON 反序列化为字典,然后您再次尝试执行此操作。 JSON 是一个 NSDictionary 但您调用的是 NSString 方法。

删除所有这些代码:

NSData *jsonData = [JSON dataUsingEncoding:NSUTF8StringEncoding];//This line cause crash
NSArray *arr = [NSJSONSerialization JSONObjectWithData:jsonData
options:0
error:nil];
loginDic=[[NSDictionary alloc]init];
loginDic=[arr objectAtIndex:0];

并将其替换为:

loginDic = [[JSON objectForKey:@"Result"] lastObject];

(这将在不检查数组边界的情况下安全地工作,但假设数组中只有一个元素。)

关于ios - 解析 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940217/

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