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
}
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.
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.
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.
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.