安心してください - レスポンスJSONをリストとして逆シリアル化します 質問する

安心してください - レスポンスJSONをリストとして逆シリアル化します 質問する

POJO がありますArtwork。RESTful Web サービスから HTTP 応答本文の JSON 形式でそれらのオブジェクトを取得していますList。返されたリストを分析する Rest Assured ベースのテストを記述しようとしています。コードは次のようになります。

Response response = get("/artwork");
List returnedArtworks = response.getBody().as(List.class)

問題は、返された JSON を Rest Assured で として解析できないことですList<Artwork>。代わりに、 が返されますList<LinkedHashMap>。マップには適切な構造があり、つまり Jackson によってArtworkオブジェクトにマップできますが、手動でマップすることは避けたいと思います。

私のモデル内の JSON マッピングは、次のように単一のオブジェクトをマッピングすると、問題ありません。

Artwork returnedArtwork = response.getBody().as(Artwork.class);

正常に動作します。

returnedArtworksとして入手することは可能ですかList<Artwork>

ベストアンサー1

あなたはこれを行うことができます:

List<Artwork> returnedArtworks = Arrays.asList(response.getBody().as(Artwork[].class));

秘訣は、JSON をオブジェクトの配列に逆シリアル化し (配列またはリストの JSON 文字列に違いがないため)、次に配列をリストに変換することです。

おすすめ記事