我在swift中为iOS应用调用webservice,我让webservice以数组的形式返回数据..像这样:
["354", "Air Conditioning", "null", "2", "Street EG", null, null, null, null, null, "50", "20", "2017-01-22T14:30:46Z", "27", "24", "18", "13", "0", null, null, null, null ] ..
问题是,当它填充数组时,它会抑制空值并减少不正确的数组长度,我需要数据为" null"如果它为null或nil,因为我按索引获取值,并且每个索引都知道为null或有值,但它必须在那里
答案 0 :(得分:1)
使用选项。你的数组将是
var array = [String?]
使用选项,您可以接受 nil 值。
当您将值附加到数组时,现在它可以接受 nil
答案 1 :(得分:0)
如果使用JSONSerialization.jsonObject(with: data)
之类的内容转换此JSON,则生成的数组不会抑制null
条目。它们由NSNull
个对象表示。如果您的null
条目被禁止,那么您应该编辑您的问题以共享正在执行此操作的代码。标准JSON解析例程将保留这些值而不会发生意外。例如,在Swift中:
guard let jsonObject = try? JSONSerialization.jsonObject(with: data), let array = jsonObject as? [Any] else {
print("can't parse it")
return
}
for object in array {
if object is NSNull {
print("Hey, it's null!")
} else {
print("It's not null, it's \(object)")
}
}
您可以看到保留null
值,用NSNull
表示(第一个除外,因为它在引号中,是一个包含四个字符的字符串,"null"
)。