swift 如何检查来自 Json 的 NULL 值
Posted
技术标签:
【中文标题】swift 如何检查来自 Json 的 NULL 值【英文标题】:swift how can I check for NULL values coming from Json 【发布时间】:2017-04-15 04:14:49 【问题描述】:我有一个 rest api,我通过 Json 获取所有数据,然后将其放入 ios TableView。我的问题是某些数据在 Json 中以 NULL
的形式返回
"vote_status":null
我正在尝试快速获取 NULL
值并将其更改为字符串“0”,但我很难这样做。到目前为止我有这个
if var vote_status = Stream["vote_status"] as? String
if (vote_status == (vote_status)[NSNull])
vote_status = "0"
但是我得到这个编译错误:
不能用类型索引为“String”类型的值下标 '(NSNull).Type'(又名'NSNull.Type')
我这样做是因为 nil 和 null 似乎不起作用,所以我不能这样做。
if (vote_status == nil) ...
【问题讨论】:
如果您将从 JSON 获取的字典打印到控制台,您会看到什么? 如果我打印它;它根本不返回任何东西,甚至不返回 NULL 它只是空白 除非我们知道您如何将 JSON 字符串转换为对象,否则无法回答这个问题。 【参考方案1】:您只需有条件地将字典值转换为 String 并使用 Nil Coalescing Operator ??
分配 "0"
以防失败 null
:
let vote_status = Stream["vote_status"] as? String ?? "0"
【讨论】:
【参考方案2】:Swift 3.0
func checkNull(obj : AnyObject?) -> AnyObject?
if obj is NSNull
return nil
else
return value
object.feature = checkNull(dict["feature"])
试试这个
vote_status is NSNull
【讨论】:
【参考方案3】:你可以试试这个
func checkForNull(value:AnyObject) -> String
if(value as! NSObject == NSNull() || value as! String == "")
return " "
else
return value as! String
【讨论】:
【参考方案4】:试试这样的:
if let category = Stream["vote_status"] as? String
print(category)
else
print(category)
【讨论】:
以上是关于swift 如何检查来自 Json 的 NULL 值的主要内容,如果未能解决你的问题,请参考以下文章
在 Objective-C 中检查来自 Json 响应的空值
如何在 swift 中将 JSON `null` 值传递给`nil` 值?