我知道这个问题已经被问到了,但我的机智已经结束了,无法弄明白这一点。
我有一个如下所示的json文件:
{
"objects": [
{
"url": "http://whatever",
"name": "whatever"
},
{
"url": "http://anything",
"name": "anything"
}
] }
在我的PHP文件中,我有这个:
// Read JSON file
$json = require('blogtest.json');
//Decode JSON
$arr = json_decode($json,true);
// Loop through Object
if (is_array($arr) || is_object($arr))
{
foreach ($ar as $arr)
{
echo $ar["objects"]["name"] + "<br>";
}
}
而不是打印名称值 - 它打印整个json文件。我已经尝试过改变过滤器,用不同的方式写出来,而我只是不能让json做我想做的事。
有没有办法让这个打印出两个“名字”值?!
答案 0 :(得分:0)
将require
替换为file_get_contents
。
require
的作用是包含文件,而不是返回文件的内容。
然后你可以用
循环这些项目foreach($ar["objects"] as $item) {
// $item['name'];
}
答案 1 :(得分:0)
您的foreach
循环错误。
foreach
块应写为:
foreach ($arr['objects'] as $ar) {
echo $ar["name"] . '<br />';
}
另外,请使用file_get_contents
代替require
。