-1

NSJSONSerialization当我尝试从服务器实现特定 api 时返回 null,但服务器中的其他 api 工作正常,当我在 web 中尝试 api 时它返回 json 类型的数据,我也在 json 查看器中检查了它,它工作很好,NSData还返回了一些数据,有人可以帮我解决吗?

NSString *urlString = @"url";        
NSURL *url = [NSURL URLWithString:urlString];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:url];
_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

if(error != nil){

    NSLog(@"JSON Error: %@", error);
    return;
}

我试过上面写的代码。

---已编辑----- 由于这是服务器端的问题,因为服务器正在发送一个无效字符以及响应,在 json 验证器中它正在传递但不是在实际的 Program 中,因此关闭了问题。

4

2 回答 2

2

问题在于您的 URL 中的转义序列,而您没有转义它们。您必须正确转义这些序列。

NSString *urlString = @"url";        
NSString *encodedString = [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:encodedString];
  1. 看看文档
  2. 还要检查Escape Sequences

尝试这个 :

NSString *urlString = @"url";        
NSURL *myUrl = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
于 2013-07-11T13:14:28.023 回答
1

制作一个NSURLConnection并请求JSONwithNSURLRequest因为我不认为“json”是一个有内容的实际文件,所以你可以使用 dataWithContentsOfURL:

于 2013-07-11T13:10:21.913 回答