我有一个JSON字符串(外部文件),其中包含一个元素,该元素可以具有FALSE或TRUE作为值.在文件中,是对是错.但是,在其上使用json_decode之后,true或false都会丢失.为什么?
JSON有效,它由许多块组成
{
"surroundedDebuff":true,
"citizenId":108981,
"citizenship":19,
"berserk":true,
"defenderSide":false,
"weapon":0,
"time":"25-03-2012 16:07:13:442",
"damage":65
}
(重复多次),检查是一个简单的print_r.
解决方法:
print_r不显示类型,因此它将显示0(代表false)和1(代表true). var_dump将显示该值实际上是布尔值.
$decoded = json_decode('{"surroundedDebuff":true,"citizenId":108981,"citizenship":19,"berserk":true,"defenderSide":false,"weapon":0,"time":"25-03-2012 16:07:13:442","damage":65}');
print_r($decoded);
var_dump($decoded);
输出:
stdClass Object
(
[surroundedDebuff] => 1
[citizenId] => 108981
[citizenship] => 19
[berserk] => 1
[defenderSide] =>
[weapon] => 0
[time] => 25-03-2012 16:07:13:442
[damage] => 65
)
object(stdClass)#1 (8) {
["surroundedDebuff"]=>
bool(true)
["citizenId"]=>
int(108981)
["citizenship"]=>
int(19)
["berserk"]=>
bool(true)
["defenderSide"]=>
bool(false)
["weapon"]=>
int(0)
["time"]=>
string(23) "25-03-2012 16:07:13:442"
["damage"]=>
int(65)
}
标签:data-loss,json,php
来源: https://codeday.me/bug/20191201/2081735.html