Значения JSON 1 или 0-int или boolean


относится ли JSON ко всем этим одинаково? Или они представляют собой смесь целых и булевых чисел?

var data =
{
    "zero" : 0,
    "one" : 1,
    "false" : 0,
    "true" : 1,
    "0" : false,
    "1" : true
}
4 53

4 ответа:

JSON-это формат для передачи данных.
У него нет понятия равенства.

JSON Парсеры рассматривать булевы и числа как различные типы.

значения true и false фактические значения типа boolean, остальные целые. См.http://json.org/ для большего.

Я предпочитаю использовать 0/1 вместо true/false, потому что 0/1 потребляют только 1 байт, а true / false потребляют 4/5 байт.

Как уже упоминалось, на уровне JSON 0 и false не совпадают; типы данных-это число и логическое значение. Но библиотеки обработки JSON могут выполнять преобразования; особенно на языках / платформах, которые не имеют собственного логического типа, например. В этом случае может использоваться другое представление (пустая строка или 0 для false).

кроме того, также возможно, что библиотеки обработки могут принудительно использовать типы: например, если ожидается логическое значение, некоторые числовые / строковые значения (или JSON' null ' token) может быть принят вместо этого. Это довольно часто, из-за различий в выборе типа данных на разных языках.