从另一个文件中读取json值并转换为数组

时间:2014-07-06 06:32:26

标签: php arrays json

这里我从不同的文件中读取json值并将其转换为数组:

include ('jsonp.php');
$json = str_replace(array("\r", "\n"), array('\r','\n'), $json);
$arr = json_decode($json, TRUE);
foreach ($arr as $r)
    {
        echo $r['post_content']."<br/>"
        echo $r['name']."<br/>";
        echo $r['taxonomy']."<br/><br/>";
    }

以上代码为此部分内容提供了所有需要转换的值:

json.php是:

https://gist.github.com/karimkhanp/c1b87d3496780b80cd32

但实际大内容的同一文件:

https://gist.github.com/karimkhanp/3d17f57a342d5fe3fc1c

给出了阅读错误。

它给出了:

arning: Invalid argument supplied for foreach()

在上面的代码中。

有什么问题?

1 个答案:

答案 0 :(得分:0)

造成这个问题的原因是新行。您可以通过jsonlint.com检查有效性。在将它们加载到json_decode()之前先处理它们。

示例:

$json = preg_replace('!\s+!', ' ', $json); // group of new lines to just space
$arr = json_decode($json, true);
foreach($arr as $r) {
    echo $r['post_content'] . '<br/>';
    echo $r['name'] . '<br/>';
    echo $r['taxonomy'] . '<br/><hr/>';
}