В Swift NSJSONSerialization.JSONObjectWithData
используется значение Optional(<null>)
для null
в JSON. Можно ли вместо синтаксического анализа использовать nil
(т.е. Сбросить поля со значениями null
, потому что Swift Dictionary
не позволяет значение nil
)?
Используйте nil вместо опции (<null>) для нулевого значения в JSON
Ответ 1
NSJSONSerialization использует объекты NSNull
, и то, что вы видите; вы можете просто проверить их по сравнению с NSNull()
.
Ответ 2
Optionnal() - значение 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
}
Ответ 3
Я бы сказал, что это проблема с вашей схемой JSON. null и string - разные типы вещей в JSON. Тот факт, что ваш ключ может иметь значение, которое иногда является нулевым, а иногда мне кажется, что строка не соответствует строгой схеме.
Хороший дизайн будет иметь ключ, который либо не будет там, либо он там, его значение гарантированно будет строкой. Доступ к клавише словаря в Swift дает необязательный параметр nil
, если ключ отсутствует, или значение, если ключ есть (в этом случае вы знаете его как строку), который соответствует тому, что вы хотите.