Что такое стандарт JSON для пустой строки или нулевой переменной?

Я создаю приложение, которое анализирует шаблон JSON, а затем заменяет значения объектов новыми данными. Мой вопрос: каков стандартный способ представления пустых данных в JSON?

Вот как я справляюсь с этим прямо сейчас:

  • пустая строка представлена ​​как " "
  • пустой int/float/double/bool/и т.д. представляется как NULL

Это верно?


person Austen Stone    schedule 25.08.2017    source источник
comment
Установка пустой строки аналогична принудительному применению значения по умолчанию. Поэтому, если вы делаете это, вы должны делать это и для других типов, int - присваивать 0, bool присваивать false и т. д. Однако, на мой взгляд, пустые данные должны быть эквивалентны нулю. Итак, здесь вы должны подумать о том, должны ли ваши данные быть пустыми или вообще отсутствовать, потому что у вас также могут быть где-то неопределенные проверки.   -  person Samuil Petrov    schedule 25.08.2017
comment
Возможный дубликат представления null в JSON   -  person cassiomolin    schedule 25.08.2017


Ответы (2)


Это должно быть довольно прямолинейно.

{
  "Value1": null, 
  "Value2": null,
}

Null представляет тип данных с нулевым значением, поэтому ваш бизнес-уровень должен знать, является ли это типом int, double, string...

person Jester    schedule 25.08.2017

Это полностью зависит от вас.

Ложные значения в JavaScript:

  • false
  • null
  • undefined
  • 0
  • NaN
  • '' or ""

Вы можете использовать любой из них для представления пустого значения. Однако имейте в виду, что когда вы пытаетесь получить доступ к несуществующему свойству объекта, вы получите undefined. Таким образом, undefined в некотором смысле можно считать стандартным нулевым значением.

Сказав это, одно соглашение состоит в том, чтобы использовать null, чтобы вы могли отличить свойство, которое было намеренно установлено в null, от свойства, которое на самом деле undefined.

person Simone    schedule 25.08.2017
comment
undefined не является допустимым JSON, и NaN также не является допустимым JSON. - person FSMaxB; 02.02.2018
comment
Вы правы, однако, если вы передадите любое из этих значений в JSON.stringify(), вы всегда получите строку, которая является действительным JSON. - person Simone; 05.02.2018
comment
но JavaScript никогда не упоминался. - person FSMaxB; 05.02.2018