在邮递员邮寄请求中发送地图

当我希望它使用 @RequestBody 注释直接映射到我的 Java pojo 时,我找不到关于如何在我的 json 帖子中格式化地图的好答案。我假设 json 看起来像:


{

    "myInt":"10",

    "myMap":"{1:\"A\"}"

}

我的 pojo 将有一个myInt字段和一个myMap字段。该myMap字段的类型Map<Integer,String>


地图的 json 是什么样子才能让它工作?


波斯汪
浏览 73回答 2
2回答

aluckdog

根据你的 JSON 结构myMap是一个String.&nbsp;但是,即使您从值中删除引号,myMap您也会发现{1:"A"}不是有效的 JSON,有效的 JSON 语法要求所有属性键都是字符串。一个有效的 JSON 结构看起来像{"1":"A"}.&nbsp;反序列化器应该能够将密钥强制转换为Integer,所以Map<Integer, String>没问题。

白猪掌柜的

首先,确保具有类似以下资源方法的内容:@Path("/url")public class Test {&nbsp; &nbsp; @POST&nbsp;@Consumes(MediaType.APPLICATION_JSON)&nbsp; &nbsp; public Response post(@RequestBody Foo foo) {&nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; }}然后,当您通过 POSTMAN 发送请求时,选择 POST 类型,然后选择“原始”选项,然后在“正文”中发送一个 JSON,其中包含您要放入 Map 的值。记得选择 "application/json" 。Jackson 将为您将 JSON 转换为 Map。{&nbsp; &nbsp;"myInt": 10,&nbsp; &nbsp;"myMap": {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1: "A"&nbsp; &nbsp; &nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java