objective-c - 检查来自 API 的响应是否为有效的 JSON

标签 objective-c ios json ios5 nsjsonserialization

NSJSONSerialization 有没有办法检查 NSData 是有效的 JSON?如果 API 出于某种原因返回无效的 JSON,我不希望应用程序出错。

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

最佳答案

这不会“出错”,如果 JSON 无效,它只会返回 nil。因此,查看它是否是有效 JSON 的测试将是:

NSError *error;
if ([NSJSONSerialization JSONObjectWithData:data
                                    options:kNilOptions
                                      error:&error] == nil)
{
    // Handle error
}

如果它确实返回了 nil 那么您可以检查 error 看看哪里出了问题。

关于objective-c - 检查来自 API 的响应是否为有效的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934210/

相关文章:

ios - 选择时更改 UITableViewCell

java - 你如何让 GSON 忽略 null 或空对象以及空数组和列表?

javascript - 如何通过 javascript 访问 JSON 元素?

ios - 我想保存应用程序,这样当用户退出时,用户返回时 uitextfields 不会删除为文本

ios - 如何在非ARC模式下手动释放此静态变量

ios - SKPhysicsJointSpring 在两个不是场景直接子对象的对象之间

ios - Metal 片段着色器获取大小

iphone - 属性类型与访问器 mkmapview 的类型不匹配

ios - 具有水平和垂直分页的 UICollectionViewLayout

javascript - 从 JSON 获取的数据未更新