Java JSON响应:带JAXB的Spring

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

技术栈:Java1.6、JAXB、Spring3、JAX-RS(RESTEasy)、XSD

你好,

我正在使用Spring和JAX-RS来创建RestFul Web服务

除了生成的响应包含setters信息(例如

  {
    ...

    "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是自动生成的,创建此示例只是为了提供建议。我没有发布原始代码,因为它太大了