2

我是一个新的 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

有什么想法或建议吗?

4

1 回答 1

4

伙计,它与 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);

顺便说一句,Symfony 与 Finder 捆绑在一起,这是一个非常好的工具来搜索和获取您需要的所有文件:http: //symfony.com/doc/current/components/finder.html

于 2013-08-12T01:41:08.103 回答