这是我第一次面对,数组的var_dumping json_encode产生布尔值。
我有一个由反序列化产生的数组。我var_dumped它并确保它是一个有效的数组。结果如下。这只是一个部分,而不是整个调试视图。
array (size=3)
'id' => string 'asco-power-technologies-l-p' (length=27)
'name' => string 'asco-power-technologies-l-p' (length=27)
'children' =>
array (size=2)
0 =>
array (size=4)
'id' => string 'apl-logistics' (length=13)
'name' => string 'APL LOGISTICS' (length=13)
'data' =>
array (size=2)
'band' => string 'ASCO POWER TECHNOLOGIES ,L.P.' (length=29)
'relation' => string 'Buyer of band' (length=13)
'children' =>
array (size=11)
0 => &
array (size=3)
'id' => string 'trisa-ag' (length=8)
'name' => string 'TRISA AG' (length=8)
'data' =>
array (size=2)
'band' => string 'APL LOGISTICS' (length=13)
'relation' => string 'Buyer of band' (length=13)
1 => &
array (size=3)
'id' => string 'colgate-sanxiao-co-ltd' (length=22)
'name' => string 'COLGATE SANXIAO CO LTD' (length=22)
'data' =>
array (size=2)
'band' => string 'APL LOGISTICS' (length=13)
'relation' => string 'Buyer of band' (length=13)
.....
Aterwards i json_encode,最大深度= 3。注意,我使用PHP 5.5并在Apache 2.4上运行,因此它支持json_encode()上的深度参数。这就是我在做的事情。
$array = unserialize($serial);
var_dump($array);
$json = json_encode($array, JSON_PRETTY_PRINT, 3);
var_dump($json);
最后我正确地得到了$array
var_dumped,并且$json
var_dumped得到了假布尔值的结果。它出什么问题了?是否由于早期的PHP发布,unproper var_dump会导致错误的布尔值?有没有人遇到过这个?
更新
这是序列化字符串。整个字符串太多了,所以我只粘贴一块。
a:3:{s:2:"id";s:27:"asco-power-technologies-l-p";s:4:"name";s:27:"asco-power-technologies-l-p";s:8:"children";a:2:{i:0;a:4:{s:2:"id";s:13:"apl-logistics";s:4:"name";s:13:"APL LOGISTICS";s:4:"data";a:2:{s:4:"band";s:29:"ASCO POWER TECHNOLOGIES ,L.P.";s:8:"relation";s:13:"Buyer of band";}s:8:"children";a:11:{i:0;a:3:{s:2:"id";s:8:"trisa-ag";s:4:"name";s:8:"TRISA AG";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:1;a:3:{s:2:"id";s:22:"colgate-sanxiao-co-ltd";s:4:"name";s:22:"COLGATE SANXIAO CO LTD";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:2;a:3:{s:2:"id";s:25:"apll-on-behalf-oftongfang";s:4:"name";s:25:"APLL ON BEHALF OFTONGFANG";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:3;a:3:{s:2:"id";s:26:"apll-on-behalf-of-zhejiang";s:4:"name";s:26:"APLL ON BEHALF OF ZHEJIANG";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:4;a:3:{s:2:"id";s:33:"apll-on-behalf-of-tongfang-global";s:4:"name";s:33:"APLL ON BEHALF OF TONGFANG GLOBAL";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:5;a:3:{s:2:"id";s:34:"apll-on-behalf-of-ningbo-xiangyuan";s:4:"name";s:34:"APLL ON BEHALF OF NINGBO XIANGYUAN";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:6;a:3:{s:2:"id";s:33:"apll-on-behalf-of-ningbo-homestar";s:4:"name";s:33:"APLL ON BEHALF OF NINGBO HOMESTAR";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:7;a:3:{s:2:"id";s:17:"apll-on-behalf-of";s:4:"name";s:17:"APLL ON BEHALF OF";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:8;a:3:{s:2:"id";s:21:"apl-logistics-sdn-bhd";s:4:"name";s:21:"APL LOGISTICS SDN BHD";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}}i:9;a:4:{s:2:"id";s:21:"apl-logistics-limited";s:4:"name";s:21:"APL LOGISTICS LIMITED";s:4:"data";a:2:{s:4:"band";s:13:"APL LOGISTICS";s:8:"relation";s:13:"Buyer of band";}s:8:"children";a:27:{i:0;a:3:{s:2:"id";s:26:"tri-phil-international-inc";s:4:"name";s:27:"TRI-PHIL INTERNATIONAL INC.";s:4:"data";a:2:{s:4:"band";s:21:"APL LOGISTICS LIMITED";s:8:"relation";s:13:"Buyer of band";}}i:1;a:3:{s:2:"id";s:16:"pt-apl-logistics";s:4:"name";s:17:"PT. APL LOGISTICS";s:4:"data";a:2:{s:4:"band";s:21:"APL LOGISTICS LIMITED";s:8:"relation";s:13:"Buyer of band";}}i:2;a:3:{s:2:"id";s:25:"keygold-manufacturing-inc";s:4:"name";s:26:"KEYGOLD ...
答案 0 :(得分:44)
$array
的深度肯定大于3.只需将深度设为更大的数字即可。
另外,在json_encode失败的情况下,您也可以使用json_last_error
查看错误消息。