Как я могу проанализировать ответ JSON и получить значение из известного ключа в качестве вывода?

#java #json #rest-assured

#java #json #будьте уверены

Вопрос:

Мой код такой, как показано ниже, я пытался использовать JSONOption, но это не сработало

 Response res =  (Response) RestAssured.given().queryParam("CUSTOMER_ID","68195").queryParam("PASSWORD","1234!").queryParam("Account_No","1").get("http://demo.guru99.com/V4/sinkministatement.php").then().extract().response();
System.out.println(res.body().asString());
        
        JSONObject jsonBody = new JSONObject(res.prettyPrint());
       System.out.println(jsonBody);
 

Я могу получить тело JSON с помощью метода PreetyPrint, но не смог извлечь пару ключ-значение из этого ответа. Похоже, мне нужно проанализировать вывод метода body.

Ответ №1:

Существует командный инструмент, называемый реализацией JQ и JS в https://github.com/fiatjaf/jq-web .

Пример использования:

 var jq = require('jq-web')
var result = jq.json({...}, 'select(.CUSTOMER_ID="123")');
 

Ответ №2:

Попробуйте метод GetMethod от HttpClient.

 private static HttpClient httpClient;
       
    public void getTest() {
          GetMethod request = new GetMethod("http://demo.guru99.com/V4/sinkministatement.php"  
                "?CUSTOMER_ID=68195"   
                "amp;PASSWORD=1234"  
                "amp;Account_No=1");
            try {
                int result = httpClient.executeMethod(request);
                String responseContent = request.getResponseBodyAsString();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }