php - json_error_utf8 - json_encode() devuelve falso
php object to json (1)
La profundidad de $array
es definitivamente mayor que 3. Simplemente haga que la profundidad sea un número mayor.
En una nota al margen, también puede usar json_last_error
para ver el mensaje de error en caso de que falle json.
Esta es la primera vez que me enfrento a ese var_dumping json_encode de una matriz que genera un valor booleano.
Tengo una matriz que fue resultado de unserialization. Lo varé y me aseguré de que fuera una matriz válida. El resultado es como abajo. Esto es solo una pieza, no una vista de depuración completa.
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 con profundidad máxima = 3. Tenga en cuenta que estoy usando PHP 5.5 y ejecutándose en Apache 2.4, de modo que admita el parámetro de profundidad en json_encode (). Esto es lo que estaba haciendo.
$array = unserialize($serial);
var_dump($array);
$json = json_encode($array, JSON_PRETTY_PRINT, 3);
var_dump($json);
Finalmente obtuve $array
var_dumped correctamente y $json
var_dumped con resultado de un valor booleano falso. ¿Qué tiene de malo? ¿Es debido a la versión temprana de PHP que var_dump incorrecto resultaría falso booleano? ¿Alguna vez alguien ha enfrentado esto?
ACTUALIZAR:
Esta es la cadena de serialización. La cadena completa es demasiado grande, así que solo pego una pieza.
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 ...