从JSON对象:'0'是假的

From a JSON object: '0' is false?

本文关键字:JSON 对象      更新时间:2023-09-26

我得到一个具有以下属性的JSON对象

id: "23132772"
isAvailable: "1",
isSelected: "0",
maxPoints: "0",
minPoints: "0",
name: "Parlay",
placeBetIsAvailable: "0"

该JSON来自一个名为betType 的对象

假设我想在CCD_ 2是CCD_ 3时使用它。

如你所见,我有placeBetIsAvailable: "0"

那么,在我的代码中,我能做到吗:

if(!betType.placeBetIsAvailable)

或者我应该指定

if(betType.placeBetIsAvailable === '0')

字符串"0"在JavaScript中是truthy,而数字0不是。如果JSON是用引号中的零编码的,那么它们是非空字符串。

如果它是一个数字而不是字符串,你可以这样做,但由于它是一条字符串中有字符的字符串(不是空字符串"(,它不再是false。要解决这个问题,你可以做这个

if(!parseInt(betType.placeBetIsAvailable)) 

if(!+betType.placeBetIsAvailable)

这可能比做还要多

if(betType.placeBetIsAvailable === '0')

如果使用字符串"0"answers"1"对truefalse进行编码,则构造if(!betType.placeBetIsAvailable)是不合适的。在地址栏中键入此内容以查看原因。

javascript:alert(["0", !"0", "1", !"1"])

基本上!"0"和!"1"均计算为false

如果确实无法对服务器返回的JSON执行任何操作,则应使用if(betType.placeBetIsAvailable === '0')格式。

尝试将其转换为数字并使用!将其转换为布尔

if(!!Number(betType.placeBetIsAvailable))