在Swift中,NSJSONSerialization.JSONObjectWithData
在{JSON}中使用Optional(<null>)
null
值。是否可以告诉解析使用nil
代替(即删除null
值的字段,因为Swift Dictionary
不允许nil
值?/ p>
答案 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
,如果键存在,则为{(在这种情况下,您知道它是一个字符串),这与您匹配想。