Jersey MOXy 未解析 snake_case

Jersey MOXy not parsing snake_case

我正在将 JSON 对象从 PUT 请求传递到我的服务器。请求本身有效,但是 JSON 中带有下划线 (snake_case) 的字段似乎被忽略了。请求输出接收到的数据,看看结果是什么,带下划线的值转换为驼峰式,没有被解析。这是 class:

Public User{

private int id;
private String name;
private int some_value;

}

我传递给 PUT 请求的 JSON 对象:

{ "id":1, "name":John, "some_value":5 }

只有 PUT 方法 returns MOXy 在这种情况下捕获了什么

@PUT
@Path("user")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public User addUser(User user){
    return user;
}

输出为:

{ "id":1, "name":John, "someValue":0 }

请注意如何将 "some_value" 更改为 "someValue" 并且没有更新实际值。知道为什么会这样吗?

MOXy 默认遵循 Java Bean 约定,建议采用驼峰式大小写。如果您不想(或不能)使用驼峰式大小写,您可以在字段中添加注释:

@XmlElement(name = "some_value")
private int some_value;

如果您不想注释所有字段,请使用 XMLNameTransformer