work print leer json_decode imprimir example doesn convertir con array php arrays json

print - php object json to array



json_decode a array (10)

Estoy intentando decodificar una cadena JSON en una matriz, pero aparece el siguiente error.

Error grave: no se puede usar el objeto de tipo stdClass como matriz en C: / wamp / www / temp / asklaila.php en la línea 6

Aquí está el código:

<?php $json_string = ''http://www.domain.com/jsondata.json''; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj[''Result'']); ?>


De acuerdo con la Manual función json_decode tiene un parámetro llamado assoc que convierte los objetos devueltos en matrices asociativas

mixed json_decode ( string $json [, bool $assoc = FALSE ] )

Como el parámetro assoc es FALSE de forma predeterminada, debe establecer este valor en TRUE para recuperar una matriz.

Examine el siguiente código para ver una implicación de ejemplo:

$json = ''{"a":1,"b":2,"c":3,"d":4,"e":5}''; var_dump(json_decode($json)); var_dump(json_decode($json, true));

que produce:

object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) } array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }



Esta es una contribución tardía, pero hay un caso válido para json_decode con (array) .
Considera lo siguiente:

$jsondata = ''''; $arr = json_decode($jsondata, true); foreach ($arr as $k=>$v){ echo $v; // etc. }

Si $jsondata se devuelve alguna vez como una cadena vacía (como en mi experiencia, a menudo lo es), json_decode devolverá NULL , lo que generará el error Advertencia: se proporcionó un argumento no válido para foreach () en la línea 3 . Podría agregar una línea de código if / then o un operador ternario, pero IMO es más limpio simplemente cambiar la línea 2 a ...

$arr = (array) json_decode($jsondata,true);

... a menos que esté json_decode a json_decode millones de matrices grandes a la vez, en cuyo caso, como @ TCB13 señala, el rendimiento podría verse afectado negativamente.


Esto también lo convertirá en una matriz:

<?php print_r((array) json_decode($object)); ?>


Por favor prueba esto

<?php $json_string = ''http://www.domain.com/jsondata.json''; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata, true); echo "<pre>"; print_r($obj[''Result'']); ?>


Prueba de esta manera:

$json_string = ''https://example.com/jsondata.json''; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj->Result); foreach($obj->Result as $value){ echo $value->id; //change accordingly }


Según la documentación , debe especificar si desea una matriz asociativa en lugar de un objeto de json_decode , este sería el código:

json_decode($jsondata, true);


en PHP json_decode convertir los datos json en una matriz asociada a PHP
Por $php-array= json_decode($json-data, true); print_r($php-array); : $php-array= json_decode($json-data, true); print_r($php-array); $php-array= json_decode($json-data, true); print_r($php-array);


prueba esto

$json_string = ''http://www.domain.com/jsondata.json''; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata,true); echo "<pre>"; print_r($obj);


json_decode admite el segundo argumento, cuando se establece en TRUE devolverá un Array lugar de stdClass Object . Consulte la página Manual de la función json_decode para ver todos los argumentos compatibles y sus detalles.

Por ejemplo prueba esto:

$json_string = ''http://www.example.com/jsondata.json''; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata, TRUE); // Set second argument as TRUE print_r($obj[''Result'']); // Now this will works!