Встроенные выражения не заменяются, если они заключены в символы - PullRequest
0 голосов
/ 11 июня 2018

Встроенные выражения не заменяются при добавлении, добавлении или в окружении символов в следующем упрощенном и очень простом сценарии:

* def jobId = '0001'
* def out = 
        """
        {
            "jobId": "#(jobId)",
            "outputMetadata": {
                "fileName_OK": "#(jobId)",
                "fileName_Fail_1": "some_text_#(jobId)",
                "fileName_Fail_2": "#(jobId)-and-some-more-text",
                "fileName_Fail_3": "prepend #(jobId) and append"
            }
        }
        """
* print out

При выполнении сценария возвращается:

{
  "jobId": "0001",
  "outputMetadata": {
    "fileName_OK": "0001",
    "fileName_Fail_1": "some_text_#(jobId)",
    "fileName_Fail_2": "#(jobId)-and-some-more-text",
    "fileName_Fail_3": "prepend #(jobId) and append"
  }
}

Isэто особенность, ограничение или ошибка?Или я что-то пропустил?

1 Ответ

0 голосов
/ 11 июня 2018

Это как задумано!Вы можете сделать это:

"fileName_Fail_2": "#(jobId + '-and-some-more-text')"

Любое допустимое выражение JS может быть вставлено во встроенное выражение, так что это не является ограничением.И это работает только в строковых значениях JSON или когда вся RHS является строкой в ​​кавычках и обеспечивает простой анализ.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...