Estou tentando decodificar uma string JSON em uma matriz, mas recebo o seguinte erro.
Erro fatal: não é possível usar o objeto do tipo stdClass como matriz em C: \ wamp \ www \ temp \ asklaila.php na linha 6
Aqui está o 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
ele.Respostas:
De acordo com a documentação , você precisa especificar se deseja uma matriz associativa em vez de um objeto
json_decode
; este seria o código:fonte
tente isso
fonte
Essa é uma contribuição tardia, mas há um caso válido para transmissão
json_decode
com(array)
.Considere o seguinte:
Se
$jsondata
alguma vez for retornado como uma sequência vazia (como na minha experiência, geralmente),json_decode
retornaráNULL
, resultando no erro Aviso: Argumento inválido fornecido para foreach () na linha 3 . Você pode adicionar uma linha de código if / then ou um operador ternário, mas na IMO é mais fácil alterar a linha 2 para ...... a menos que você esteja
json_decode
produzindo milhões de matrizes grandes de uma só vez, caso em que @ TCB13 aponta, o desempenho pode ser afetado negativamente.fonte
Caso você esteja trabalhando com php menor que o 5.2, você pode 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
fonte
De acordo com a função de documentação do PHP
json_decode
, tem um parâmetro chamado assoc que converte os objetos retornados em matrizes associativasComo o parâmetro assoc é
FALSE
por padrão, você deve definir esse valorTRUE
para recuperar uma matriz.Examine o código abaixo para obter um exemplo de implicação:
quais saídas:
fonte
Isso também mudará para uma matriz:
fonte
json_decode($object, true);
otrue
faz exatamente o mesmo, internamente muito mais rápido.json_decode
+ a conversão é 45% mais rápida do que a execução dos dois tipos dejson_decode
. Por outro lado, ambos são tão rápidos que, a menos que você precise literalmente de milhares de decodificações, a diferença é insignificante.json_decode
apoiar o segundo argumento, quando definidoTRUE
, retornará um emArray
vez destdClass Object
. Verifique a página da função Manualjson_decode
para ver todos os argumentos suportados e seus detalhes.Por exemplo, tente o seguinte:
fonte
Portanto, se você deseja uma matriz, pode passar o segundo argumento como 'true' na
json_decode
função.fonte
Eu espero que isso te ajude
Use a função de decodificação Json
Looping sobre matriz JSON em php
Resultado : Sistemas de Computação (Redes)
fonte
no PHP json_decode converte dados json em array associado ao PHP
Para Ex:
$php-array= json_decode($json-data, true); print_r($php-array);
fonte
Por favor tente isto
fonte
Tente assim:
fonte