Valeurs JSON 1 ou 0 – int ou booléen

JSON traite-t-il ces mêmes problèmes? Ou sont-ils un mélange de nombres entiers 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é.

Les parsingurs JSON traitent 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 true / false, car 0/1 consum seulement 1 octet alors que true / false consum 4/5 octets.

Comme mentionné, au niveau JSON, 0 et false ne sont pas les mêmes; les types de données sont nombre contre booléen. Mais les bibliothèques de traitement JSON peuvent choisir de faire des conversions; en particulier sur les langages / 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).

De plus, il est également possible que les bibliothèques de traitement puissent contraindre les types: de telle sorte que si une valeur booléenne est attendue, certaines valeurs de nombre / chaîne (ou jeton “null” JSON) peuvent être acceptées. Cela est assez courant en raison des différences de choix de type de données entre différentes langues.