JSON值为1或0 - int或boolean

时间:2011-06-30 22:59:23

标签: json integer boolean

JSON对待这些都是一样的吗?或者他们是整数和布尔的混合?

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

4 个答案:

答案 0 :(得分:86)

truefalse是实际的布尔值,其余是整数。有关详情,请参阅http://json.org/

答案 1 :(得分:63)

JSON是一种传输数据的格式 它没有平等的概念。

JSON 解析器将布尔值和数字视为不同的类型。

答案 2 :(得分:28)

我更喜欢使用0/1而不是true / false,因为0/1只消耗1个字节,而true / false消耗4/5个字节。

答案 3 :(得分:8)

如前所述,在JSON级别,0和false不相同;数据类型是数字与布尔值。 但是JSON处理库可以选择进行转换;例如,特别是在没有本机布尔类型的语言/平台上。在这种情况下,可以使用另一种表示形式(空字符串或0表示假)。

此外,处理库也可以强制类型:这样,如果需要布尔值,则可以接受某些数字/字符串值(或JSON“null”标记)。 这是相当常见的,因为不同语言的数据类型选择存在差异。