无法解码控制器中的json文件

时间:2013-08-12 00:39:54

标签: symfony

我是一个新的symfony用户,我实际上正在训练自己。 这是我的问题:

echo $this->container->get('templating.helper.assets')->getUrl('bundles/tlfront/js/channels.json');
    $channels = json_decode($this->container->get('templating.helper.assets')->getUrl('bundles/tlfront/js/channels.json'));
    var_dump($channels);

我想在我的控制器中解码一个JSON文件,但这是echo和vardump给我的内容:

/Symfony/web/bundles/tlfront/js/channels.json ( the echo)
null (the var_dump)

似乎文件的路径是正确的,但json_decode不起作用。

json_last_error()返回4 JSON_ERROR_SYNTAX

但是,当我在http://jsonlint.com/中运行json字符串时,它返回Valid JSON

任何想法或建议?

1 个答案:

答案 0 :(得分:3)

老兄,它与Symfony无关...... json_decode只接受字符串:

http://php.net/manual/es/function.json-decode.php

这就是你得到语法错误的原因。只需使用file_get_contents阅读文件即可:

$path = $this->container->get('templating.helper.assets')->getUrl('bundles/tlfront/js/channels.json');
$content = file_get_contents($path);
$json = json_decode($content, true);

BTW,Symfony捆绑了Finder,这是一个非常好的工具,可以搜索并获取您需要的所有文件:http://symfony.com/doc/current/components/finder.html