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_decodecon(array).Considera lo siguiente:
Si
$jsondataalguna vez se devuelve como una cadena vacía (como en mi experiencia a menudo lo es),json_decoderegresará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_decodeutilizando 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
FALSEpredeterminado, debe establecer este valorTRUEen 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);latruehace 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_decodeadmite segundo argumento, cuando se establece enTRUEdevolverá un enArraylugar destdClass Object. Consulte la página de función Manualjson_decodepara 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_decodefunció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