<?php
$json_string = file_get_contents('infile.json');
fwrite($fileout, $json_string);
var_dump(json_decode($json_string));
$get_json_values=json_decode($json_string,true);
if(is_array($get_json_values))
{
foreach ($get_json_values as $getlikes) { ?>
<li>
<a href="https://www.facebook.com/<?php echo $getlikes['id']; ?>" target="_top">
</li>
<?php
} }
?>
我试图从json
文件中获取值,但我无法弄清楚为什么var_dump
返回NULL。另外,如果我删除if
,原因显而易见,有一个
Warning: Invalid argument supplied for foreach()
请帮我解决这个问题,我一整天都在研究这个问题,这真是令人沮丧,以至于它无论如何都无法解决。
注意:文件名正确,文件与.php
文件位于同一目录中,infile.json
中有数据,时打印 fwrite($fileout, $json_string);
已完成。
问题是什么,我该怎么办?
编辑:json
文件包含大约1000个包含Facebook页面数据的条目。它们都具有以下结构:
{"category":"Musician\/band","name":"Yann Tiersen (official)","id":"18359161762","created_time":"2013-03-09T23:00:54+0000"}
var_dump($json_string)
打印文件中的数据。
如果这有任何帮助,可以下载json
<{1}}文件here
我已经像这样编造了我的json:
function idx(array $array, $key, $default = null) {
return array_key_exists($key, $array) ? $array[$key] : $default;
}
$likes = idx($facebook->api('/me/likes'), 'data', array());
foreach ($likes as $like) {
fwrite($fileout,json_encode($like));
fwrite($fileout,PHP_EOL );
?>`
那么,我应该改变的是:
1)在fwrite($fileout, "[");
之后添加fwrite($fileout,"]");
和foreach
之后添加fwrite($fileout,",")
2)在fwrite($fileout,PHP_EOL );
之前添加{{1}}
这是对的吗?
答案 0 :(得分:2)
infile.json
中可能包含无效的JSON。根据{{3}}的文档:
NULL is returned if the json cannot be decoded or if the encoded data is deeper
than the recursion limit.
答案 1 :(得分:2)
您的JSON文件无效。
基本上你有很多行本身都是有效的JSON,但它们无法合并!
无效:
{"category":"Musician\/band","name":"Yann Tiersen (official)","id":"18359161762","created_time":"2013-03-09T23:00:54+0000"}
{"category":"Travel\/leisure","name":"Me hitchhiking around the world","id":"221159531328223","created_time":"2013-03-09T13:24:06+0000"}
有效:
[
{"category":"Musician\/band","name":"Yann Tiersen (official)","id":"18359161762","created_time":"2013-03-09T23:00:54+0000"}
,
{"category":"Travel\/leisure","name":"Me hitchhiking around the world","id":"221159531328223","created_time":"2013-03-09T13:24:06+0000"}
]
您可以逐行解码JSON,也可以将其转换为有效格式。