使用Unirest、Java和Selenium WebDriver解析Json

使用Unirest、Java和Selenium WebDriver解析Json,java,json,parsing,unirest,Java,Json,Parsing,Unirest,我正在测试一个本地api。 通过下面的代码,我得到了一个身体的回应。 我需要从“returnMessage”和“returnCode”和“merchantOrderId”获取数据,我已经用很多方法尝试过了,但没有,有人能帮我吗 Api测试代码: @Test public void Cod04Autorized() { HttpResponse<String> response = Unirest.post("http://localhos

我正在测试一个本地api。 通过下面的代码,我得到了一个身体的回应。 我需要从
“returnMessage”
“returnCode”
“merchantOrderId”
获取数据,我已经用很多方法尝试过了,但没有,有人能帮我吗

Api测试代码:

@Test 
        public void Cod04Autorized() {


            HttpResponse<String> response = Unirest.post("http://localhost:8080/api/cielo/pagamentos/transacaoCompleta")
              .header("Content-Type", "application/json")
              .body("{\r\n\t\"merchantOrderId\": \"11234099\",\r\n\t\"client\": {\r\n\t\t\"name\": \"Joao das Neves Teste No Cap\"\r\n\t},\r\n\t\"payment\": {\r\n\t\t\"amount\": 10000,\r\n\t\t\"installments\": 1,\r\n\t\t\"capture\": false,\r\n\t\t\"card\": {\r\n\t\t\t\t\"cardNumber\": \"0000.0000.0000.0001\",\r\n\t\t\t\t\"holderName\": \"Joao das Neves\",\r\n\t\t\t\t\"expirationDate\": \"12/2030\",\r\n\t\t\t\t\"securityCode\": \"123\",\r\n\t\t\t\t\"brand\" : \"Visa\"\r\n\t\t}\r\n\t}\r\n}")
              .asString();


            Assert.assertEquals(200, response.getStatus());                 


            }
{
   "error":null,
   "content":{
      "merchantOrderId":"11234099",
      "customer":{
         "name":"Joao das Neves Teste No Cap",
         "email":null,
         "birthDate":null,
         "identity":null,
         "identityType":null,
         "address":null,
         "deliveryAddress":null
      },
      "payment":{
         "serviceTaxAmount":0,
         "installments":1,
         "interest":"0",
         "capture":false,
         "authenticate":false,
         "recurrent":false,
         "recurrentPayment":null,
         "creditCard":{
            "cardNumber":"0000.0*********0001",
            "holder":"Joao das Neves",
            "expirationDate":"12/2030",
            "securityCode":null,
            "saveCard":false,
            "brand":"Visa",
            "cardToken":null
         },
         "debitCard":null,
         "tid":"1219040857754",
         "proofOfSale":"857754",
         "authorizationCode":"634929",
         "softDescriptor":"123456789ABCD",
         "returnUrl":null,
         "provider":"Simulado",
         "paymentId":"7d263fbc-01cf-4fa8-a81d-130bfd1190a8",
         "type":"CreditCard",
         "amount":10000,
         "receivedDate":"2019-12-19 16:08:56",
         "capturedAmount":null,
         "capturedDate":null,
         "currency":"BRL",
         "country":"BRA",
         "returnCode":"4",
         "returnMessage":"Operation Successful",
         "status":1,
         "links":[
            {
               "Method":"GET",
               "Rel":"self",
               "Href":"https://apiquerysandbox.cieloecommerce.cielo.com.br/1/sales/7d263fbc-01cf-4fa8-a81d-130bfd1190a8"
            },
            {
               "Method":"PUT",
               "Rel":"capture",
               "Href":"https://apisandbox.cieloecommerce.cielo.com.br/1/sales/7d263fbc-01cf-4fa8-a81d-130bfd1190a8/capture"
            },
            {
               "Method":"PUT",
               "Rel":"void",
               "Href":"https://apisandbox.cieloecommerce.cielo.com.br/1/sales/7d263fbc-01cf-4fa8-a81d-130bfd1190a8/void"
            }
         ],
         "extraDataCollection":null,
         "expirationDate":null,
         "url":null,
         "number":null,
         "barCodeNumber":null,
         "digitableLine":null,
         "address":null,
         "boletoNumber":null,
         "demonstrative":null,
         "identification":null,
         "instructions":null,
         "authenticationUrl":null
      }
   }
}

如果您只想获取这3个字段
returnMessage
returnCode
merchantOrderId
,可以使用
Jayway JsonPath
轻松完成

Maven依赖关系

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>
DocumentContext jsonContext = JsonPath.parse(jsonResponse);
String returnMessage = jsonContext.read("$.content.payment.returnMessage");
String returnCode = jsonContext.read("$.content.payment.returnCode");
String merchantOrderId = jsonContext.read("$.content.merchantOrderId");