首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot2 WebClient响应将JSON转换为HashMap

Spring Boot2 WebClient响应将JSON转换为HashMap
EN

Stack Overflow用户
提问于 2018-12-17 02:51:36
回答 3查看 3.7K关注 0票数 2

我想从WebClient获得一个响应,并将其转换为一个映射,而不为该响应创建任何类。有可能吗?所以我想要下面这样的东西。下面的代码不是一个有效的代码,它只是我想要的一个想法。

代码语言:javascript
复制
public Map<String, String> someFunction() {
    return webClient.post()
            .uri("/some/path")               
            .retrieve()
            .bodyToFlux(HashMap.class)
            .block();
EN

回答 3

Stack Overflow用户

发布于 2018-12-17 03:42:42

我将首先尝试将响应对象转换为字符串,并确保接受JSON类型作为返回。一旦我将响应转换为字符串,您可以尝试使用fasterxml的jackson数据库库,该库可以将JSON字符串转换为Hashmap。

例如

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2021-08-09 17:44:56

如果你对保存LOC感兴趣,你可能想看看Spring Framework的一个核心类:here找到的ParameterizedTypeReference<T>

代码语言:javascript
复制
public Map<String, String> someFunction() {
    return webClient.post()
            .uri("/some/path")               
            .retrieve()
            .bodyToFlux(new ParameterizedTypeReference<Map<String,String>>(){})
            .block();
}

干杯。

票数 1
EN

Stack Overflow用户

发布于 2019-10-19 01:58:21

我是这样解决的:

代码语言:javascript
复制
public Map<String, String> someFunction() {
    return webClient.post()
            .uri("/some/path")               
            .retrieve()
            .bodyToFlux(TypedMap.class)
            .block();
}

private static class TypedMap extends HashMap<String, String>{}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53805417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档