Как извлечь ценность из динамической генерации - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь использовать значение из динамической генерации.

Моя полезная нагрузка выглядит так:

{

"payload": [

    {

        "questionDefinitionId": "jRs6zAh3GGt3G8tL9SzUrS8SiXyg6EirSElv3VRpX_Q=",

        "questionText": "What was your childhood nickname?",

        "languageCode": "en",

        "questionNumber": 1,

        "disabled": false

    },

    {

        "questionDefinitionId": "pmyZ4excucJBuFvSPCr6yIvO74vZS8DUNPx0GYVR57E=",

        "questionText": "What is your favorite team?",

        "languageCode": "en",

        "questionNumber": 2,

        "disabled": false

    },

    {

        "questionDefinitionId": "awE_x8cXHcc0uhJ7lgtjzX1NtgA0IQBBWu7iDbVqW-k=",

        "questionText": "What is the name of your favorite childhood friend?",

        "languageCode": "en",

        "questionNumber": 1,

        "disabled": false

    },

    {

Это поколение отличается каждый раз, когда выполняется.

Мне нужно получить: jRs6zAh3GGt3G8tL9SzUrS8SiXyg6EirSElv3VRpX_Q =, которое является значением questionDefinitionId для questionNumber: 1, но всегда генерируется в другом месте в файле Json

но каждый раз, когда их заказ находится в другом месте в длинном списке.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Ваша полезная нагрузка представляется мне JSON объектом, в этом случае имеет гораздо больше смысла переходить на JSON Extractor , это будет намного проще реализовать / читать / поддерживать / и т.д.

Например, вы можете получить значение атрибута questionDefinitionId, где questionText равно What was your childhood nickname?, используя == Оператор фильтра , например:

$.payload[?(@.questionText == 'What was your childhood nickname?')].questionDefinitionId

Демо-версия:

enter image description here

Если вы хотите, чтобы questionDefinitionId, где questionNumber было 1, измените выражение пути JSON так:

$.payload[?(@.questionNumber == '1')].questionDefinitionId

Однако в вашем примере есть 2 вопроса с номером 1

См. Тестирование API с JMeter и JSON Extractor для получения дополнительной информации о концепции.

0 голосов
/ 08 ноября 2018

Попробуйте это регулярное выражение:

 (?<="questionDefinitionId": ")(.+?)(?=")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...