将 NSdata 存储到 NsDictionary 时出错

Posted

技术标签:

【中文标题】将 NSdata 存储到 NsDictionary 时出错【英文标题】:Error Store NSdata to NsDictonary 【发布时间】:2015-02-05 11:28:18 【问题描述】:

请帮我解析 JSON 数据。我们在 NSMutable Data 中得到响应。但我们不会在 Dictionary 中取出数据。我的 jsonDictionary 为零。 这是我的网址。我检查了 JSON Validator。它们显示有效的 Json 输出。帮助....

http://mobileapp.merucabs.com/NearByCab_ETA/GetNearByCabs.svc/rest/nearby?Lat=23.0768222&Lng=72.645732&SuggestedRadiusMeters=5000&CabMaxCount=10

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 

   // NSString *responseString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
    //NSLog(@"Response String is %@",responseString);
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;


jsonDictionary=[NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil];
jsonArr=[jsonDictionary objectForKey:@"results"];
  //  NSLog(@"JSONDictionary is %@",jsonDictionary);
[_categoryListTableView reloadData];



【问题讨论】:

您确定要将所有数据添加到“recivedData”,在将数据附加到其中时添加代码 该 url 中的 json 无效。检查来自jsonlint.com的json的有效性 没有名为 results 的 JSON 对象 Json Validator 获取有效的 json 输出。 能否分享一下错误信息。 【参考方案1】:

我从您的URL 获得了输出,并创建了新项目并运行,项目链接为附加here

【讨论】:

如果您需要帮助,我希望与您合作 但我们无法将数据存储在 dictonary 中。请帮帮我。【参考方案2】:

从结果中删除行<stringxmlns="http://schemas.microsoft.com/2003/10/Serialization/"> 然后再试一次

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 

id jsonDictionary=[NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:nil];
    NSLog(@"JSONDictionary is %@", jsonDictionary);

【讨论】:

url是soap方法,需要把XML转成NSDictionary【参考方案3】:

您的 json 服务正在返回无效的 json。如果您检查该网址的源代码,您会发现

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">

在文件的头部。使用 jsonlint.com 等一些验证工具确保 json 的有效性

【讨论】:

请查看截图。

以上是关于将 NSdata 存储到 NsDictionary 时出错的主要内容,如果未能解决你的问题,请参考以下文章

将 NSData 与 NSDictionary 参数一起传递给 Web 服务

将 NSDictionary 对象转换为 NSData 对象,反之亦然

NSData 的内容到 NSArray/NSDictionary

将 JSON 数据从 NSData 转换为 NSDictionary

使用 NSJSONSerialization 将 NSDictionary 转换为 NSData

在手机之间发送 NSDictionary