Если вы получаете входные данные в формате, который не может быть проанализирован как простая переменная шаблона, тогда вы можете переключиться на GStringTemplateEngine
, что позволяет вам использовать разделы простого кода Groovy, который может легко прочитатьключ карты как 'condition_set[0].name'
.Взгляните на следующий пример:
import groovy.text.GStringTemplateEngine
def text = '''
This is <%= getVariable("condition_set[]") %>
This is <%= getVariable("condition_set[0].name") %>
'''.trim()
def binding = ['condition_set[]': 'test', 'condition_set[0].name': 'TEMPLATE']
def engine = new GStringTemplateEngine()
println engine.createTemplate(text).make(binding)
Самое важное изменение по сравнению с вашим предыдущим примером состоит в том, что вместо использования простых переменных шаблона теперь мы выполняем метод getVariable()
для объекта Binding
.Важно начинать раздел с <%=
, чтобы результат вызова метода getVariable()
возвращался синтаксическому анализатору шаблона.Если вы запустите этот пример, он выдаст следующий вывод:
This is test
This is TEMPLATE
Надеюсь, это поможет.