使用jersey-json用空格映射字段名称

时间:2016-05-05 16:34:01

标签: java json jersey mapping

我有一个gson生成的POST应用程序/ json请求,可以使用:

{"Process Name": "Urlaubsantrag", "Action Performed EmailId": "somebody@somewhere.de", "Process Step": "Start"}

我想用jersey将json数据映射到我的bean。像

@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String createVacation(Vacation aVacation) 
{
    //DO something
}

班级度假代表我的模特

    public class Vacation {
    String processName;
    String actionPerformedEmailID;
    String processStep;
    String actionName;
etc...

问题是,json代码中的所有字段名称都包含空格。我在模型中找到正确的字段名称时遇到问题,因此处理名称"将映射到processName。

我该怎么做?或者还有其他方法来处理它吗?

1 个答案:

答案 0 :(得分:1)

回答这个问题可能已经太晚了,但是今天我遇到了同样的问题(除了它是下划线而不是字段名称中的空格)。我使用XML绑定注释修复了这个问题。

因此,我们需要以这种方式注释Vacation类及其字段

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Vacation {
@XmlElement(name = "Process Name")
String name;
@XmlElement(name = "Action Performed EmailId")
String actionPerformedEmailID;
@XmlElement(name = "Process Step")
String processStep;
String actionName;

如果JSON字段和POJO字段的名称相等,则可以省略@XmlElement注释。