在JSON </null>中使用nil而不是Optional(<null>)作为空值

时间:2014-08-15 04:28:05

标签: json swift

在Swift中,NSJSONSerialization.JSONObjectWithData在{JSON}中使用Optional(<null>) null值。是否可以告诉解析使用nil代替(即删除null值的字段,因为Swift Dictionary不允许nil值?

3 个答案:

答案 0 :(得分:16)

Optional()是NSNull值。你可以避免这样的错误:

if !(myField is NSNull) {
    //Whatever you want to do with myField when not null
} else {
    //Whatever you want to do when myField is null
}

答案 1 :(得分:13)

NSJSONSerialization使用NSNull个对象,这就是你所看到的;您可以通过与NSNull()进行比较来检查它们。

答案 2 :(得分:0)

我想说这是你的JSON架构的一个问题。 null和string是JSON中不同类型的东西。事实上,你的密钥的值有时为null,有时候字符串在我看来,你们并没有遵循严格的模式。

一个好的设计会让密钥不在那里,或者如果它在那里,它的值保证是一个字符串。在Swift中访问字典键会产生一个可选项,如果键不存在则为nil,如果键存在,则为{(在这种情况下,您知道它是一个字符串),这与您匹配想。