我想从WebClient获得一个响应,并将其转换为一个映射,而不为该响应创建任何类。有可能吗?所以我想要下面这样的东西。下面的代码不是一个有效的代码,它只是我想要的一个想法。
public Map<String, String> someFunction() {
return webClient.post()
.uri("/some/path")
.retrieve()
.bodyToFlux(HashMap.class)
.block();发布于 2018-12-17 03:42:42
我将首先尝试将响应对象转换为字符串,并确保接受JSON类型作为返回。一旦我将响应转换为字符串,您可以尝试使用fasterxml的jackson数据库库,该库可以将JSON字符串转换为Hashmap。
例如
ObjectMapper mapper = new ObjectMapper();
String json = "{\"name\":\"abc\", \"age\":25}";
Map<String, Object> map = new HashMap<String, Object>();
// convert JSON string to Map
map = mapper.readValue(json, new TypeReference<Map<String, String>>(){});
System.out.println(map);下面是databind库和核心库java文档的链接
jackson-databind
jackson-core
发布于 2021-08-09 17:44:56
如果你对保存LOC感兴趣,你可能想看看Spring Framework的一个核心类:here找到的ParameterizedTypeReference<T>。
public Map<String, String> someFunction() {
return webClient.post()
.uri("/some/path")
.retrieve()
.bodyToFlux(new ParameterizedTypeReference<Map<String,String>>(){})
.block();
}干杯。
发布于 2019-10-19 01:58:21
我是这样解决的:
public Map<String, String> someFunction() {
return webClient.post()
.uri("/some/path")
.retrieve()
.bodyToFlux(TypedMap.class)
.block();
}
private static class TypedMap extends HashMap<String, String>{}https://stackoverflow.com/questions/53805417
复制相似问题