我有一个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字符串之间没有区别),然后将数组转换为列表。

10-02 04:26