Заменить переменную в строке на фактическое значение - Groovy - PullRequest
0 голосов
/ 02 июля 2019

В Groovy,

Рассмотрим переменную "ssn", значение которой вводится пользователем.

def ssn = <SSN captured via user input>

Я создаю запрос в виде строки «полезная нагрузка», где ssn, введенный пользователем, должен заменить ssn в строке.

String payload='{"<Some Database Query>","Variables"{"Id":"${ssn}"}}';

Что не так с указанной строкой?ssn в строке не заменяется на ssn, захваченный через пользовательский ввод.Является ли "$ {ssn}" неправильным синтаксисом для записи значения переменной в строку?

1 Ответ

1 голос
/ 02 июля 2019

Внутри одной строки в кавычках вы не можете выполнять интерполяцию строк.Вам нужно, чтобы внешняя строка была в двойных кавычкахПоскольку вы хотите встроить двойные кавычки в значение, самый простой способ сделать это с тройными двойными кавычками ("""...""").

См. Следующее:

groovy:000> ssn = 'some captured input'
===> some captured input
groovy:000> payload = '{"<Some Database Query>","Variables"{"Id":"${ssn}"}}'
===> {"<Some Database Query>","Variables"{"Id":"${ssn}"}}
groovy:000> 
groovy:000> payload = """{"<Some Database Query>","Variables"{"Id":"${ssn}"}}""" 
===> {"<Some Database Query>","Variables"{"Id":"some captured input"}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...