web-dev-qa-db-fra.com

Valeurs JSON 1 ou 0 - int ou booléen

Est-ce que JSON les traite tous de la même manière? Ou sont-ils un mélange d'Integers et de booléens?

var data =
{
    "zero" : 0,
    "one" : 1,
    "false" : 0,
    "true" : 1,
    "0" : false,
    "1" : true
}
55
Phill Pafford

JSON est un format de transfert de données.
Il n’a aucune notion d’égalité.

JSON analyseurs traite les booléens et les nombres comme des types distincts.

63
SLaks

Les valeurs true et false sont des valeurs booléennes réelles, les autres sont des entiers. Voir http://json.org/ pour plus d'informations.

87
Rob Agar

Je préfère utiliser 0/1 au lieu de vrai/faux, parce que 0/1 consomme seulement 1 octet alors que vrai/faux consomme 4/5 octets.

28
Hieu Vo

Comme mentionné, au niveau JSON, 0 et false ne sont pas identiques; Les types de données sont numériques ou booléens. Mais les bibliothèques de traitement JSON peuvent choisir d'effectuer des conversions. en particulier sur les langues/plates-formes qui n'ont pas de type booléen natif, par exemple. Dans ce cas, une autre représentation peut être utilisée (chaîne vide ou 0 pour faux).

En outre, il est également possible que les bibliothèques de traitement puissent contraindre des types: de telle sorte que si une valeur booléenne est attendue, certaines valeurs de nombre/chaîne (ou le jeton 'null' JSON) peuvent être acceptées à la place. Ceci est assez courant, en raison des différences de choix de types de données sur différentes langues.

11
StaxMan