杰克逊映射到Map变量

时间:2016-08-26 17:36:01

标签: java json jackson

我有一个类,它有一个Map作为变量之一。 杰克逊解析器无法映射到此。

示例 -

Class A
{
private String abc;

private Map<String, String> xyz;
...

}

在控制器中我有

@RequestMapping(value = "/myval", method = RequestMethod.POST, consumes =
{ MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
    @ResponseBody
    public DGF updateCall(@RequestBody final A varName)
{
....
}



Json
{
"abc":"tyui",
"xyz":[{
"key" : "rtyu",
"value" : "yui"
}]
...
}

调试时将xyz设为null。

1 个答案:

答案 0 :(得分:1)

你需要为A类设置一个非参数构造函数,以便让Jackson反序列化工作:

public A (){
abc="";
xyz = new HashMap<String, String>();
}