我有一个POJO Artwork
。我正在以JSON格式从HTTP响应主体中的RESTful Web服务检索这些对象的List
。我正在尝试编写一个基于Rest Assured的测试,该测试将分析返回的列表。代码如下:
Response response = get("/artwork");
List returnedArtworks = response.getBody().as(List.class)
问题是,我无法保证将返回的JSON解析为
List<Artwork>
。相反,我得到了List<LinkedHashMap>
。该 map 具有适当的结构,即可以由Jackson映射到Artwork
对象,但我想避免手动映射它。我的模型中的JSON映射是可以的,因为当我像这样映射单个对象时:
Artwork returnedArtwork = response.getBody().as(Artwork.class);
它工作正常。
可以将
returnedArtworks
作为List<Artwork>
吗? 最佳答案
你可以这样做:
List<Artwork> returnedArtworks = Arrays.asList(response.getBody().as(Artwork[].class));
诀窍是将JSON反序列化为对象数组(因为数组或列表的JSON字符串之间没有区别),然后将数组转换为列表。