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

时间:2019-03-08 23:37:13

标签: java json dictionary post postman

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

{
    "myInt":"10",
    "myMap":"{1:\"A\"}"
}

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

地图的json看起来如何工作?

2 个答案:

答案 0 :(得分:2)

根据您的JSON结构myMapString。但是,即使您从myMap的值中删除引号,您也会发现{1:"A"}不是有效的JSON,有效的JSON语法要求所有属性键都是字符串。有效的JSON结构类似于{"1":"A"}。反序列化程序应该能够将密钥强制转换为Integer,因此Map<Integer, String>很好。

答案 1 :(得分:1)

首先,请确保具有以下资源方法:

@Path("/url")
public class Test {

    @POST
 @Consumes(MediaType.APPLICATION_JSON)
    public Response post(@RequestBody Foo foo) {
        ...
    }
}

然后,当您通过POSTMAN发送请求时,将类型选择为POST,然后选择“原始”选项,然后仅在“正文”中发送包含要放入Map中的值的JSON。记住选择“ application / json”。 Jackson将为您将JSON转换为Map。

{
   "myInt": 10,
   "myMap": {
         1: "A"
     }
}