web-dev-qa-db-ja.com

JSON値1または0-intまたはboolean

JSONはこれらをすべて同じように扱いますか?それとも、整数とブール値が混在していますか?

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

JSONは、データを転送するための形式です。
平等の概念はありません。

JSON パーサーブール値と数値を個別のタイプとして扱います。

63
SLaks

truefalseの値は実際のブール値であり、残りは整数です。詳細については、 http://json.org/ を参照してください。

87
Rob Agar

0/1は1バイトのみを消費し、true/falseは4/5バイトを消費するため、true/falseではなく0/1を使用することを好みます。

28
Hieu Vo

前述のように、JSONレベルでは、0とfalseは同じではありません。データ型は、数値とブール値です。ただし、JSON処理ライブラリは変換を選択できます。特に、たとえばネイティブのブール型を持たない言語/プラットフォームでは。その場合、別の表現を使用できます(空の文字列またはfalseの場合は0)。

さらに、処理ライブラリが型を強制することもできます。ブール値が予想される場合、代わりに特定の数値/文字列値(またはJSON 'null'トークン)を受け入れることができます。これは、異なる言語でのデータ型の選択の違いにより、かなり一般的です。

11
StaxMan