从关于json_encode()
过滤器的TWIG文档中,他们说:
json_encode
json_encode过滤器返回值的json表示:
{{ data|json_encode() }}
在内部,Twig使用PHP json_encode函数。
参数
options:json_encode options的位掩码
({{data|json_encode(constant('JSON_PRETTY_PRINT')) }})
我想做的是添加多个这样的选项。
我想要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')) }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT', 'JSON_UNESCAPED_SLASHES')) }}
但它们都不起作用。如何组合TWIG json_encode()
滤波器的两个选项?
TwigFiddle here
{% 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
来执行twitch中的位或操作(docs)。
所以像这样的东西应该起作用:
{{ array|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_UNESCAPED_SLASHES')) }}