carlosdombosco Postado Abril 6, 2020 Denunciar Share Postado Abril 6, 2020 Boa tarde pessoal. Como ler esse JSON em um foreach php { "produtos": [ { "codbar":"123456789", "nome":"FEIJÃO", "tipo":"UN", "prcprd": 4.00, "prcprm": 3.50, "estoque": 0, "categ":097 , "subcateg":09703 } { "codbar":"987654321", "nome":"ARROZ", "tipo":"UN", "prcprd": 5.00, "prcprm": 4.50, "estoque": 0, "categ":097 , "subcateg":09703} ],"atual":1,"totalPages":20} Agradeço qualquer ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bross Postado Abril 8, 2020 Denunciar Share Postado Abril 8, 2020 $retorno=json_decode($json, true); foreach($retorno .... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Fevereiro 19, 2023 Denunciar Share Postado Fevereiro 19, 2023 (editado) Faz três anos que eu tento resolver o seu problema, mas só hoje é que consegui resolver. Como o PHP não aceita a sintaxe $teste={"key":"value"}, então eu converti em string, assim: $teste='{"key":"value"}'. Para converter uma string em json, o PHP usa a função $json=json_decode($teste), mas no seu caso, o PHP retornou null. Fiquei três anos sem dormir, até que eu finalmente decidi usar o famoso método científico da tentativa e erro. Eu consegui converter em json o seguinte: {"nome":"arroz"}, depois eu consegui converter em json {"nome":arroz,"estoque":0}, mas eu não consegui converter {"categ":097}. Para consertar, eu fiz assim {"categ":"097"}. Eu fiz o mesmo procedimento no {"subcategor":"09703"}. Outra coisa que o PHP não aceita é converter [{ } { }], eu tive que corrigir para [{ },{ }]. Depois de reeditar os seus dados, o PHP ficou uma maravilha. <?php $teste='{"produtos":[{"codbar":"123456789","nome":"FEIJÃO", "tipo":"UN","prcprd": 4.00,"prcprm": 3.50, "estoque": 0,"categ":"097" ,"subcateg":"09703"}, {"codbar":"987654321","nome":"ARROZ","tipo":"UN", "prcprd": 5.00,"prcprm": 4.50,"estoque": 0, "categ":"097","subcateg":"09703"}],"atual":1,"totalPages":20}'; $json=json_decode($teste); $produtos=$json->produtos; echo "<table>"; echo "<tr><td>página atual: ".$json->atual; foreach($produtos as $produto){ echo "<tr><td>".$produto->nome; echo "<td>Estoque: ".$produto->estoque;} echo "</table>"; No meu caso, valeu a pena resolver. Hoje eu aprendi que existe uma brutal diferença entre escrever echo "página atual"; e echo "<td>página atual"; a diferença é exatamente um espaço! Outra coisa importante: se você usar o comando $json=json_decode($teste,true) você estará trabalhando com um array, e aí o meu código não é mais válido. Ao invés de usar $json->produtos, você terá que usar a notação $json['produtos']. Editado Fevereiro 19, 2023 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
carlosdombosco
Boa tarde pessoal. Como ler esse JSON em um foreach php
{
"produtos":
[
{
"codbar":"123456789",
"nome":"FEIJÃO",
"tipo":"UN",
"prcprd": 4.00,
"prcprm": 3.50,
"estoque": 0,
"categ":097 ,
"subcateg":09703 }
{
"codbar":"987654321",
"nome":"ARROZ",
"tipo":"UN",
"prcprd": 5.00,
"prcprm": 4.50,
"estoque": 0,
"categ":097 ,
"subcateg":09703} ],"atual":1,"totalPages":20}
Agradeço qualquer ajuda.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.