Как мне точно вывести строку с фигурными скобками и кавычками?

#freemarker

#freemarker

Вопрос:

Я не могу определить правильные команды экранирования / отсутствия синтаксического анализа для этого варианта использования.

Случай 1

Ввод шаблона:

 foo.bar: {"key_a":"val_a", "key_b":"val_b"}
 

Вывод:

 foo.bar:
    key_a: val_a
    key_b: val_b
 

Случай 2

Ввод шаблона:

 foo.bar: '{"key_a":"val_a", "key_b":"val_b"}'   // Added single quotes
 

Вывод:

 foo.bar: '{"key_a":"val_a", "key_b":"val_b"}'
 

Желаемый результат

 foo.bar: {"key_a":"val_a", "key_b":"val_b"}     // No quotes
 

Комментарии:

1. Что вы подразумеваете под «шаблонным вводом», что анализирует это? Как выглядит шаблон (я нигде не вижу такого ${...} или подобного)?

Ответ №1:

Просто присвоите значение переменной и используйте двойные кавычки:

 <#assign foo = "{"key_a":"val_a", "key_b":"val_b"}"/>
foo.bar: ${foo}
 

Вы можете проверить онлайн в https://try.freemarker.apache.org /

Комментарии:

1. В этом случае строковый литерал удобнее использовать ' , и тогда экранирование не требуется. Кроме того, зачем присваивать переменной помощь?