REST Assured 66 - How To Parse A JSON Array Response To A Java List In Rest Assured?

REST Assured 系列汇总 之 REST Assured 66 - How To Parse A JSON Array Response To A Java List In Rest Assured?

介绍

不是每次都需要将 response 转换成一个 POJO 类的实例来获取值。我也可以将一个 JSON Array 响应直接转换成一个 Java List,这样就不创建 POJO 类了。

前提条件

How To Parse A JSON Object Response To A Java Map In Rest Assured
添加 rest assured 依赖库

<!-- REST Assured -->
<dependency>
  <groupId>io.rest-assured</groupId>
  <artifactId>rest-assured</artifactId>
  <version>4.4.0</version>
</dependency>

解析 JSON Array 成 Java List

一旦响应返回,如果是一个 JSON Array,那么可以将它解析成一个 List。有一个 as() 方法,接受一个 TypeRef 引用来支持泛型。例如:一个 JSON Array 可以被表示成一个 List。 为了强制转换 JSON Array response,需要用到 as() 方法和 TypeRef。TypeRef 是一个抽象类,用于当反序列化一个 response时,具体化类型。

import java.util.List;
import java.util.Map;
 
import io.restassured.RestAssured;
import io.restassured.common.mapper.TypeRef;
 
public class ParseJsonArrayResponseToList {
    
    
 
	public static void main(String[] args) {
    
    
		
		List<Map<String,Object>> responseBody = null;
		
		responseBody = 
		RestAssured
			.given()
				.baseUri("https://restful-booker.herokuapp.com/")
				.basePath("booking")
			.when()
				.get()
			.then()
				.extract()
				.body()
				// Extract response as List<Map<String,Object>>
				// Since the response in a List of Map format.
				.as(new TypeRef<List<Map<String,Object>>>() {
    
    });
		
		System.out.println("Total bookings : "+ responseBody.size());
		
		System.out.println("All booking ids are: ");
		
		for(Map<String,Object> booking : responseBody)
		{
    
    
			System.out.println(booking.get("bookingid"));
		}
				
	}
}

输出:

Total bookings : 10
All booking ids are: 
10
4
6
1
3
7
2
5
8
9

猜你喜欢

转载自blog.csdn.net/wumingxiaoyao/article/details/120605269
今日推荐