在 iOS、PHP 和 JSON 中使用来自 SQL Server 的空值

Posted

技术标签:

【中文标题】在 iOS、PHP 和 JSON 中使用来自 SQL Server 的空值【英文标题】:Using null value from SQL Server in iOS, PHP and JSON 【发布时间】:2012-08-01 20:23:43 【问题描述】:

我正在设计的应用程序使用从 SQL Server 2008 数据库中选择的 php 脚本返回的 JSON 对象。我遇到的问题是,当数据库缺少某个字段的值时,它在 JSON 中返回为 null。然后当应用程序解析 JSON(我正在使用 NSJSONSerialization)时,字典包含一个值。使用此字典填充我的视图时,应用程序在遇到空值时崩溃。

绕过这个问题的最简单方法是什么?我想我可以在 PHP 将数据返回为 JSON 之前用空字符串替换所有空值;但是,这可能不是最好的解决方案。有没有简单的方法来检查 ios

感谢您的帮助。

【问题讨论】:

【参考方案1】:

要检查空值,您需要查看对象是否为[NSNull null]

id object = [dict objectForKey:@"key"];
if(object == [NSNull null])

    //Handle null value

【讨论】:

有没有办法检查整个字典?还是我必须用钥匙拉出一个物体然后检查? 您必须检查每个对象,您可以在解析 json 后立即检查每个对象并删除/替换为默认值,或者将 NSNull 处理添加到使用并显示值的任何类。 这很糟糕!我知道没有其他方法,但认为您必须明确检查空值。只是想知道为什么 iOS 不像 android 那样将 null 视为 nil !问题是如果我们执行 NSArray *array = [dict objectForKey:@"key"];并且值为null,它将NSNull对象分配给数组,我们不能使用条件if(array && [array count] > 0),因为NSNull不是nil,并且NSNull不响应count,App会崩溃!我最终在我的代码中为每一个都编写了宏。

以上是关于在 iOS、PHP 和 JSON 中使用来自 SQL Server 的空值的主要内容,如果未能解决你的问题,请参考以下文章

IOS:如何显示和播放来自 JSON 的视频

JSON解析:来自PHP5(攻击数据库:mySQL)ios5 iphone

json swift ios - 将参数发送到 php-sql

从 PHP 获取 JSON 数据到 iOS

在 PHP 中使用来自 AJAX 请求的 JSON 字符串 [关闭]

使用 JSON 和 php 的 iOS 错误