繁体   English   中英

Twig json_encode有多个选项

[英]Twig json_encode with multiple options

从关于json_encode()过滤器的TWIG文档中,他们说:

json_encode

json_encode过滤器返回值的JSON表示:

 {{ data|json_encode() }} 

在内部,Twig使用PHP json_encode函数。

参数

options:json_encode选项的位掩码

 ({{data|json_encode(constant('JSON_PRETTY_PRINT')) }}) 

我想要做的是添加多个选项。

我想要JSON_PRETTY_PRINTJSON_UNESCAPED_SLASHES

我试过了

{{ array|json_encode(constant('JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES')) }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES')) }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT', 'JSON_UNESCAPED_SLASHES')) }}

但它们都不起作用。 如何为TWIGs json_encode()过滤器组合两个选项?

TwigFiddle在这里

{% set array = {'xxx': "one", 'yyy': "two", 'path': "/hello/world" } %}

{% autoescape false %}
    {{ array|json_encode() }}
    {{ array|json_encode(constant('JSON_PRETTY_PRINT')) }}
    {{ array|json_encode(constant('JSON_UNESCAPED_SLASHES')) }}
{% endautoescape %}

期望的输出应该是

{
    "xxx": "one",
    "yyy": "two",
    "path": "/hello/world"
}

看来你需要b-or在twig中进行按位或操作( docs )。

所以像这样的东西应该工作:

{{ array|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_UNESCAPED_SLASHES')) }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM