java Spring WebClient toEntityList不适用于List< String>

goqiplq2  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(110)

我有一个REST端点,它返回一个简单的JSON字符串ID数组:

["D0000019","D0000017","D0000016","D0000013","D0000009","D0000020"]

响应为Content-Type: application/json
我从Spring WebClient中使用它,并尝试使用toEntityList方法生成List<String>

ResponseEntity<List<String>> response = webClient.get()
    .uri("/myEndpoint")
    .accept(MediaType.APPLICATION_JSON)
    .retrieve()
    .toEntityList(String.class)
    .block();

但是,这并没有正确解析JSON,而是返回一个包含单个项的列表,该项是响应的文字字符串内容,如上所示。
同样的模式也适用于String以外的列表项类型(通常是JSON对象)。
有没有一种方法可以告诉Spring请将响应解析为它声明的JSON?

kqlmhetl

kqlmhetl1#

您可以尝试将.map添加到此语句中,如下所示:

ResponseEntity<List<String>> response = webClient.get()
    .uri("/myEndpoint")
    .accept(MediaType.APPLICATION_JSON)
    .retrieve()
    .toEntityList(String.class)
    .map(list -> ResponseEntity.ok().body(list))
    .block();

相关问题