2013-05-14 4 views
3
{ 
    "response_time": 0.014376163482666016, 
    "applications": [ 
     { 
      "api_key": "blted0e7982e1cf62a8", 
      "name": "gta", 
      "uid": "gta", 
      "account_name": "jack" 
     }, 
     { 
      "api_key": "blt1423c40d23e4a423", 
      "name": "cellapp", 
      "uid": "cellapp", 
      "account_name": "max" 
     } 
    ] 
} 

Пожалуйста, помогите мне извлечь account_name = max с помощью JMeter Json Path Extractor.Тяговое несколько значений из ответа JSON с помощью 'JSon Path Extractor' в Jmeter

+0

в приведенном выше примере я хочу, чтобы извлечь "ACCOUNT_NAME": "Макс", используя JSon путь экстрактор IM используя $ .applications.account_name, но он дает мне account_name = jack –

+0

, вам нужно прокрутить результат. – Raptor

+0

@Shivan Raptor если мой ответ содержит несколько учетных записей, что я должен использовать для извлечения в таком случае –

ответ

5

$.applications.name[2] должен возвращать точно второй элемент названия.

Если вы используете JSONPath как $..name это будет выглядеть для всех элементов, названных name и плагин будет возвращать одно значение строки, которые будут выглядеть ["gta","cellapp"]. Вы можете проанализировать эту строку, если это необходимо.

Проверьте этот сайт о том, как создавать выражения JSONPath: http://goessner.net/articles/JsonPath/index.html#e2.

+2

Правильное выражение будет выглядеть как '$ .applications [ 1] .account_name': 1. вопрос касался имени «account_name», а не «name»; 2. индексы начинаются с 0, а не с 1; поэтому второй элемент будет [1]; 3. Также вам нужно обратиться к указателю точки для «приложений», а не по имени. –

+0

спасибо !! это очень полезно Alies Belik and Nikolay –

-1
$..[?(@.account_name =='max')].account_name 
0

С expresion ->

$.[?(@.account_name=='max')].account_name 

Вы получите

[ 
    "max" 
] 

С expresion ->

$.[?(@.account_name=='max')] 

Вы получите

[ 
    { 
     "api_key": "blt1423c40d23e4a423", 
     "name": "cellapp", 
     "uid": "cellapp", 
     "account_name": "max" 
    } 
] 

С expresion ->

$.[?(/max/.test(@.account_name))] 

Вы получите "как" условие

[ 
    { 
     "api_key": "blt1423c40d23e4a423", 
     "name": "cellapp", 
     "uid": "cellapp", 
     "account_name": "max" 
    } 
] 

 Смежные вопросы

  • Нет связанных вопросов^_^