我有一个pojo课。
@XmlRootElement(name = "project")
public class Project {
private UUID id;
private String label;
private String name;
//getters and setters
}
如果我从邮递员那里尝试,它接受这个作为输入。
{
"label" : "label",
"name" : "name"
}
但是,我希望它接受值为
{
"project" : {
"label" : "label",
"name" : "name"
}
}
我的端点方法是
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createProject(Project project) {
log.info("createProject called." + project);
if (project == null) {
return Response.ok(false).build();
}
ps = new ProjectServiceImpl();
return Response.ok(ps.createProject(project)).build();
}
还有其他各种方法,例如获取所有项目,其他方希望' root-name'或者' class-name'像这样在json的开头。我坚持这样的事情,这减缓了我的工作。请给我一些建议或提供我可以阅读的东西。
答案 0 :(得分:1)
我认为SerializationFeature.WRAP_ROOT_VALUE
和DeserializationFeature.UNWRAP_ROOT_VALUE
是您正在寻找的配置选项。
在这里阅读更多内容:
https://github.com/FasterXML/jackson-databind/wiki/Serialization-Features https://github.com/FasterXML/jackson-databind/wiki/Deserialization-Features
答案 1 :(得分:0)
请使用@XmlRootElement而不是@XmlRootElement(name =“project”)并试用
答案 2 :(得分:0)
如果您使用弹簧并使用休息服务,那么这是一个很好的阅读 - http://spring.io/guides/gs/consuming-rest/