gpt4 book ai didi

java - 从 @RequestHeader 读取 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 05:25:56 28 4
gpt4 key购买 nike

我正在接收一个 JSON 对象,该对象是从前端作为字符串发送给我的,我希望 spring-boot 将其解析为我的 Map。

我尝试过 @RequestHeader("header-name") Map header 和 @RequestHeader Map header ,但两者都为我提供了所有 header 的映射,而不是我的目标包含 JSON 的 header 。

public ResponseEntity<MyObject> getStuff(@RequestHeader("My-Header") Map myHeaderJSON)

我希望 Spring 将变量 myHeaderJSON 字符串解析为 Map。有什么办法可以实现这一点吗?让 spring-boot 帮我将字符串解析为 JSON 或 Map?

最佳答案

不,您需要自己对其进行反序列化。

来自spring docs :

If the method parameter is Map<String, String>, MultiValueMap<String, String>, or HttpHeaders then the map is populated with all header names and values.

它不会从 map 中提取和反序列化 json,而是您需要执行以下操作:

public ResponseEntity<MyObject> getStuff(@RequestHeader Map myHeader) { 
String json = myHeader.get("My-Header");
MyClass myClass = objectMapper.readValue(json, MyClass.class);

...
}

关于java - 从 @RequestHeader 读取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58616803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com