Как генерировать json с smarty?

В Smarty существует стандартная функция или простой способ генерации json из массива, как json_encode () в php? На самом деле кажется, что нет в гибкой документации, но хотелось спросить в любом случае.

Спасибо, Синан.

Related of "Как генерировать json с smarty?"

Это должно сработать. @ Позволяет smarty запускать модификатор против всего массива, иначе он делает это для каждого элемента.

{$myarray|@json_encode} 

Если $ escape_html включен, вам нужно будет использовать nofilter :

 {$myarray|@json_encode nofilter} 

В то время как {$myarray|@json_encode} действительно испускает массив, закодированный в json, он также ускользает от специальных символов, что делает массив непригодным для использования в javascript.

Чтобы избежать экранирования специальных символов, а также использовать массив в javascript, используйте флаг nofilter:

 {$myarray|@json_encode nofilter} 

Вы должны использовать json_encode() в ur php-коде, затем присвойте значение smarty с помощью функции $smarty->assign() . После этого вам нужно проанализировать это значение в файле шаблонов ur с помощью javascript.

фрагмент кода:

 {literal} <script> var json = JSON.parse('{/literal}{$urarray}{literal}'); //another statments </script> {/literal} 

Я ничего не знаю. Вы можете присвоить результат json_encode () переменной smarty в вашем «php-коде» с помощью $ smarty-> assign (…), а затем использовать его в своем шаблоне.

Также есть расширение Smarty для json_decode (). Нетрудно написать собственное расширение для противоположного на основе этого.