Estoy tratando de decodificar una cadena JSON en una matriz, pero aparece el siguiente error.
Error fatal: 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']);
?>
$ob->Result
.Respuestas:
Según la documentación , debe especificar si desea una matriz asociativa en lugar de un objeto
json_decode
, este sería el código:fuente
prueba esto
fuente
Esta es una contribución tardía, pero hay un caso válido para emitir
json_decode
con(array)
.Considera lo siguiente:
Si
$jsondata
alguna vez se devuelve como una cadena vacía (como en mi experiencia a menudo lo es),json_decode
regresaráNULL
, lo que dará como resultado el error Advertencia: argumento no válido proporcionado para foreach () en la línea 3 . Puede 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 ...... a menos que esté
json_decode
utilizando millones de matrices grandes a la vez, en cuyo caso, como señala @ TCB13, el rendimiento podría verse afectado negativamente.fuente
En caso de que esté trabajando en php menos de 5.2, puede usar este recurso.
http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/
http://mike.teczno.com/JSON/JSON.phps
fuente
De acuerdo con la función de documentación de PHP
json_decode
, tiene un parámetro denominado assoc que convierte los objetos devueltos en matrices asociativasComo el parámetro assoc es el
FALSE
predeterminado, debe establecer este valorTRUE
en para recuperar una matriz.Examine el siguiente código para ver un ejemplo de implicación:
que salidas:
fuente
Esto también lo cambiará a una matriz:
fuente
json_decode($object, true);
latrue
hace exactamente lo mismo, internamente mucho más rápido.json_decode
+ lanzar es un 45% más rápido que ejecutar ambos tiposjson_decode
. Por otro lado, ambos son tan rápidos que, a menos que necesite literalmente miles de decodificaciones, la diferencia es insignificante.json_decode
admite segundo argumento, cuando se establece enTRUE
devolverá un enArray
lugar destdClass Object
. Consulte la página de función Manualjson_decode
para ver todos los argumentos compatibles y sus detalles.Por ejemplo, intente esto:
fuente
Entonces, si desea una matriz, puede pasar el segundo argumento como 'verdadero' en la
json_decode
función.fuente
Espero que esto ayude
Utilice la función de decodificación Json
Bucle sobre matriz JSON en php
Resultado : Sistemas informáticos (redes)
fuente
en PHP json_decode convierte datos json en una matriz asociada a PHP.
Por ejemplo:
$php-array= json_decode($json-data, true); print_r($php-array);
fuente
Por favor intente esto
fuente
Intenta así:
fuente