我试图通过PHP接收外部json文件。
我正在尝试这种方式:
<?php
$json_file = file_get_contents("http://www.moonwalk.com.br/api/VitrineDeProdutos/58e903df295cbc5c4639434d4c35090d");
$json_str = json_decode($json_file, true);
$itens = $json_str->nodes;
foreach ( $itens as $e )
{ echo "$e->title<br>"; }
?>
但是,它没有用。
外部文件位于: http://www.moonwalk.com.br/api/VitrineDeProdutos/58e903df295cbc5c4639434d4c35090d
任何人都可以帮助我吗?我做错了什么?
非常感谢!
答案 0 :(得分:1)
$json_str
是一个数组而非对象,因为您明确要求通过json_decode($json_file, true)
进行投射。
$itens = $json_str['nodes'];
同样适用于$e
foreach ($itens as $e) {
echo $e['title'] . "<br>";
}
如果您想要使用您的代码,只需从json_decode($json_file);
答案 1 :(得分:0)
尝试这种方式:
$json_file = file_get_contents("http://www.moonwalk.com.br/api/VitrineDeProdutos/58e903df295cbc5c4639434d4c35090d");
$json_str = json_decode($json_file, true);
if (!empty($json_str['nodes'])) {
foreach ($json_str['nodes'] as $e) {
echo $e['title'] . "<br>";
}
}
答案 2 :(得分:0)
试 检查php设置......
可能是由于安全问题......“ allow_url_fopen = On”
设置 php.ini
答案 3 :(得分:0)
走另一条路。您接收 JSON格式的字符串。你确定它不是
您需要 nodes
- &gt; children
- &gt; title
?
$json_file = file_get_contents("http://www.moonwalk.com.br/api/VitrineDeProdutos/58e903df295cbc5c4639434d4c35090d");
$json_array = json_decode($json_file, true);
foreach ($json_array['nodes'][0]['children'] as $node) {
echo $node['title'].'<br>';
}
输出:
Monte Seu Mix
Mix - 18 peças
Mix - 20 peças
Mix - 30 peças
Mix - 49 peças
Mix - 70 peças
Salmão ou Atum na crosta - 15 peças
Salmão ou Atum selados - 15 peças
Guiosa de frango - 5 unidades
Yakisoba Camarão ou Frutos do Mar
Yakissoba Carne ou Frango
Teppan Yaki
Hot Tradicional
Hot com Camarão à milanesa