Convierta una cadena JSON en una matriz en PHP
Este artículo demuestra cómo convertir una cadena JSON en una matriz en PHP.
La solución estándar para decodificar una cadena JSON es usar el json_decode() función, que toma una cadena codificada en JSON y la convierte en un tipo de PHP apropiado. El siguiente fragmento de código muestra cómo usar json_decode()
para convertir una cadena JSON en un objeto. Tenga en cuenta que se accede a los elementos dentro de un objeto encapsulando el elemento entre llaves y el apóstrofe.
1 2 3 4 5 6 7 8 9 10 |
<?php $json_str = '{"x":5,"y":6}'; $obj = json_decode($json_str); print '(' . $obj->{'x'} . ', ' . $obj->{'y'} . ')'; /* Salida: (5, 6) */ ?> |
si quieres el json_decode()
función para devolver una matriz asociativa en lugar de un objeto, puede establecer su segundo parámetro en true
. El segundo parámetro es opcional y es false
por defecto; tienes que configurarlo true
para convertir los objetos JSON en matrices asociativas. Por ejemplo,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $json_str = '{"x":5,"y":6}'; $obj = json_decode($json_str, true); var_export($obj); /* Resultado: array ( 'x' => 5, 'y' => 6, ) */ ?> |
Si su cadena JSON está codificada usando el htmlentities()
o htmlspecialchars()
función, es posible que desee decodificar las entidades HTML de nuevo a sus caracteres correspondientes antes de invocar json_decode()
. Esto se puede hacer usando el html_entity_decode()
función, como se muestra a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $json_str = '{"x":5,"y":6}'; $decoded_str = html_entity_decode($json_str); $obj = json_decode($decoded_str, true); var_export($obj); /* Resultado: array ( 'x' => 5, 'y' => 6, ) */ ?> |
Se trata de convertir una cadena JSON en una matriz en PHP.