我有一个模型,它是用来自mysql数据库的JSON响应设置的,模型数据是用true或false设置到数据库中的boolean/tinyint字段中的,它使用1
或0
。
在我看来,我有一个绑定,它检查一个带下划线的布尔值_.isBoolean
。当然,当我的模型接收到数据时,它被设置为1
或0
,而不是true或false,_.isBoolean
检查失败。
是否有任何方法可以正确地让来自mysql的JSON响应是布尔值true或false,而不是1
或0
,或者更好的是,是否有一种方法可以让我的模型在提取时(以及在视图呈现之前)更新自己,以根据它的1或0属性转换true
或false
?
例如,我的模型的数据看起来像{"isChecked":"1"}
,而我需要它是{"isChecked":true}
非常感谢您的任何建议,你可能有!
6条答案
按热度按时间xbp102n01#
您只需要使用
+
将string
转换为int
,然后使用!!
将结果转换为布尔值:您可以在
parse
方法中执行此操作:UPDATE:7年后,我发现
Number(string)
转换更优雅。而且,改变对象不是最好的主意。也就是说:5cg8jx4n2#
使用双非:
li9yvcax3#
下面是另一个更长但可读性更强的选项:
eaf3rand4#
将比较指派给属性值
JavaScript语言
您可以将属性的比较指定为
"1"
这只对字符串值
"1"
求值。其他变量求值为false,就像实际的typeof number
将为false一样。(即obj["isChecked"]=1
)如果你想区分
"1"
或1
,你可以用途:示例输出
PHP语言
PHP中的相同概念
与上述JavaScript相同的运算符限制也适用。
双非
'double not'也是有效的。当人们第一次读到它的时候会感到困惑,但是它在两种语言中对整数/数字类型的值都有效。但是它在JavaScript中对字符串类型的值不起作用,因为它们总是求值为true:
JavaScript语言
PHP语言
2guxujil5#
或
yrdbyhpb6#
另一种解决方法是创建一个数组来保存布尔值,并将对应的布尔值赋给它的索引。下面我来解释一下:
使用int或str访问所需的布尔值。
bools['0'] (str)
或bools[0] (int)
在浏览器中应该能很好地工作,并产生正确的值。希望这对你有帮助