Java JSON响应:带JAXB的Spring
技术栈:Java1.6、JAXB、Spring3、JAX-RS(RESTEasy)、XSD 你好, 我正在使用Spring和JAX-RS来创建RestFul Web服务 除了生成的响应包含setters信息(例如Java JSON响应:带JAXB的Spring,java,json,spring,jaxb,resteasy,Java,Json,Spring,Jaxb,Resteasy,技术栈:Java1.6、JAXB、Spring3、JAX-RS(RESTEasy)、XSD 你好, 我正在使用Spring和JAX-RS来创建RestFul Web服务 除了生成的响应包含setters信息(例如 { ... "setName": true, "setId": true, "setAddress": true, "setAge": true, } 我不知道是什么原因造成的? 我怎样才能关掉这个 阿迪 更新1: PersonReque
{
...
"setName": true,
"setId": true,
"setAddress": true,
"setAge": true,
}
我不知道是什么原因造成的?
我怎样才能关掉这个
阿迪
更新1:
PersonRequest类由JAXB生成,包含所有javax.xml.bind.annotation.*注释
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "personResponse " })
@XmlRootElement(name = "PersonResponse ")
public class PersonResponse {
@XmlElement(name = "Name", required = true)
protected String name;
@XmlElement(name = "Id", required = true)
protected String id;
// and the setters and getters
}
资源如下所示:
@Component
@Path("/person")
public class PersonImpl implements Person {
@Override
@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, "application/x-amf" })
@Path("v1")
public PersonResponse getPerson() {
....
....
}
}
**更新2**
只有当内容类型为json时才会发生这种情况,如果内容类型为“xml”,则不会返回setter。如果这有帮助的话。我怀疑堆栈的其他部分正在向您的域模型编织额外的字段(即一些ORM库会这样做)。要确认您可以使用
java.lang.reflect
API查看类在被ClassLoader
加载后有哪些字段,问题在xjb文件中,有关详细信息,请查看相关问题。不应该是{“name”,“id”}
而不是{“personResponse”}
?是的,也许吧。这些bean是自动生成的,创建此示例只是为了提供建议。我没有发布原始代码,因为它太大了