簡體   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