我是一个新的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
任何想法或建议?
答案 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