55 votes

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'entiers et de booléens?

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

87voto

Rob Agar Points 5793

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.

62voto

SLaks Points 391154

JSON est un format de transfert de données.
Il n'y a pas de notion d'égalité.

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

28voto

Hieu Vo Points 378

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

11voto

StaxMan Points 34626

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

En outre, il est également possible que les bibliothèques de traitement peuvent contraindre les types: de sorte que si la valeur booléenne est attendu, certain nombre/chaîne de valeurs (ou JSON 'null' token) peut être accepté à la place. Cette situation est assez courante, en raison des différences sur le type de données des choix dans des langues différentes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X