Извлечение значений JSON в скрипте - PullRequest
0 голосов
/ 09 ноября 2018

Это мой json, я хочу извлечь имя и код, используя скрипт beanshell. Но я не могу извлечь значения. Пожалуйста, помогите

{  
   "code":"HNYC",
   "message":"Sucess",
   "data":{  
      "Employeid":"TGRDH-887",
      "Perosonal":{  
         "Details":{  
            "firstname":"Sam",
            "id":3566,
            "dob":"23/11/1990",
            "Yearofjoing":"2018",
            "Salary":30000,
            "Address":"New Delhi",
            "City":"Delhi"
         }
      }
   }
}

Код Beanshell:

import com.eclipsesource.json.JsonObject;
String jsonString = prev.getResponseDataAsString();  
JsonObject accountId = JsonObject.readFrom(jsonString); 
String code = accountId.getJSONObject("code");   
print("value "+code);

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject getData = jsonObject.getJSONObject("data");
JSONObject getPerosonal = getData.getJSONObject("Perosonal");
JSONObject getDetails = getPerosonal.getJSONObject("Details");
Object firstname= getDetails.get("firstname");

System.out.println(firstname);
0 голосов
/ 09 ноября 2018

Прежде всего, вы знаете о JSON Extractor ? Если нет - рассмотрите возможность его использования, поскольку он дает возможность извлекать данные JSON с помощью простых JSONPath запросов, таких как $..code и $.. firstname


Если вы все еще хотите заняться сценариями, имейте в виду, что начиная с JMeter 3.1, рекомендуется использовать Groovy для любой формы сценариев. Groovy является более «современным» языком, чем Beanshell, он поддерживает все новые функции Java и имеет множество улучшений поверх Java SDK

Одним из них является встроенная поддержка JSON через JsonSlurper класс, так что вы можете сократить свой код до чего-то вроде:

def json = new groovy.json.JsonSlurper().parseText(prev.getResponseDataAsString())
String code = json.code
log.info(code)

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

enter image description here

Дополнительная информация:

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

Вы можете получить code значение непосредственно из JSONObject, так как это свойство в JSONObject , ссылается

String code = accountId.get("code");
...