java - 使用 Unirest 和 Java 以及 Selenium WebDriver 解析 Json

标签 java json parsing unirest

我正在测试本地 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());                 


            }

JSON 响应:

{
   "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
      }
   }
}

最佳答案

如果您只想获取returnMessagereturnCodemerchantOrderId这3个字段,使用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");

关于java - 使用 Unirest 和 Java 以及 Selenium WebDriver 解析 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418721/

相关文章:

java - 使用 json_exists 查询 JSON 的 JDBC 准备语句

java - 将列表添加到另一个列表

java - 从 Java 中的 Futures 列表中收集结果

java - Java G1 垃圾收集器是否尊重 MaxHeapFreeRatio 参数?

java - Eclipselink 实体持续存在问题

php - Laravel 中的 Blade 模板与纯 PHP

json - 不是 Kibana 上的索引,Elasticsearch

android - 如何在 android 中使用 Ksoap2 将 json 数组作为参数传递给 Web 服务

javascript - jQuery 中的大型 XML 数据

javascript - 匹配所有字符直到下一次匹配的正则表达式