当我希望它使用 @RequestBody 注释直接映射到我的 Java pojo 时,我找不到关于如何在我的 json 帖子中格式化地图的好答案。我假设 json 看起来像:{ "myInt":"10", "myMap":"{1:\"A\"}"}我的 pojo 将有一个myInt字段和一个myMap字段。该myMap字段的类型Map<Integer,String>地图的 json 是什么样子才能让它工作?
2 回答
aluckdog
TA贡献1847条经验 获得超7个赞
根据你的 JSON 结构myMap
是一个String
. 但是,即使您从值中删除引号,myMap
您也会发现{1:"A"}
不是有效的 JSON,有效的 JSON 语法要求所有属性键都是字符串。一个有效的 JSON 结构看起来像{"1":"A"}
. 反序列化器应该能够将密钥强制转换为Integer
,所以Map<Integer, String>
没问题。
白猪掌柜的
TA贡献1893条经验 获得超10个赞
首先,确保具有类似以下资源方法的内容:
@Path("/url")
public class Test {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response post(@RequestBody Foo foo) {
...
}
}
然后,当您通过 POSTMAN 发送请求时,选择 POST 类型,然后选择“原始”选项,然后在“正文”中发送一个 JSON,其中包含您要放入 Map 的值。记得选择 "application/json" 。Jackson 将为您将 JSON 转换为 Map。
{
"myInt": 10,
"myMap": {
1: "A"
}
}
添加回答
举报
0/150
提交
取消