【问题标题】:Rendering a JSON in Symfony [Problem with special characters] [duplicate]在 Symfony 中渲染 JSON [特殊字符问题] [重复]
【发布时间】:2021-08-05 12:44:04
【问题描述】:

我正在使用 symfony 进行一个项目,我正在使用 php 函数 file_get_contents 返回此页面的内容https://db.satnogs.org/api/satellites/?format=json 这基本上是一个json格式的内容。

问题是当我将内容渲染到树枝文件时,格式会发生这样的变化

[{"id":4105855,"start":"2021-05-14T10:45:53Z","end":"2021-05-14T10:50:41Z","ground_station
...

我尝试通过替换“to”来清除特殊字符,但我仍然遇到问题,因为反斜杠字符在渲染时也消失了

例如,这是我要渲染的普通 json 格式

"client_metadata":"{\"radio\": {\"name\": \"gr-satnogs\",
...

这是我渲染 json 文件后的版本

"client_metadata":"{"radio": {"name": "gr-satnogs",

我试图把 \ 字符放回去,但我没弄明白

我的问题是为什么symfony中的渲染函数会改变文件的格式,你知道如何在symfony中渲染正确的格式吗(我是否必须在参数中精确一些编码格式?渲染函数的可能)?

如果您能帮助我,我将不胜感激! :)

【问题讨论】:

标签: php html json symfony encoding


【解决方案1】:

我假设,您的 json 代码位于 json 之类的变量中。

通常,所有输出变量都在 twig 中转义。所以,我认为你做了这样的事情:

{{ json }}

如果你确定数据被保存而没有被转义,你可以使用raw修饰符:

{{ json|raw }}

【讨论】:

    【解决方案2】:

    您可以使用 javascript decodeURI() 函数解决此问题。在 PHP 中,它是urldecode()

    console.log(decodeURI(document.getElementById("mycode").innerHTML));
    <div id="mycode">[{"id":4105855,"start":"2021-05-14T10:45:53Z","end":"2021-05-14T10:50:41Z"}]</div>

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2016-06-06
      • 2012-11-08
      • 2023-04-05
      • 1970-01-01
      • 2016-08-06
      相关资源
      最近更新 更多