java - JSON 响应 : Spring with JAXB

标签 java json spring jaxb resteasy

技术堆栈:Java 1.6、JAXB、Spring 3、JAX-RS (RESTEasy)、XSD

你好,

我使用 Spring 和 JAX-RS 来创建 RestFul Webservice。

一切工作正常,除了生成的响应包含 setter 信息,例如

  {
    ...

    "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 ** 仅当 Content-Type 为 json 时才会发生这种情况,如果 Content-Type 为“xml”,则不会返回 setter。如果有帮助的话。

最佳答案

我怀疑堆栈的其他部分正在将额外的字段编织到您的域模型中(即某些 ORM 库会执行此操作)。为了确认您可以使用 java.lang.reflect API 来查看您的类在被 ClassLoader 加载后具有哪些字段。

关于java - JSON 响应 : Spring with JAXB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620450/

相关文章:

json - 在模式中建模一对一关系的方法?

java - log4j2属性为控制台和文件设置不同的阈值

java - 通过 Spring Security 和 SpEL 表达式限制 POST 和 REST 请求时出错

java - 运行spring框架+maven时找不到logback.xml

java - 如何在 java 中验证 amazon s3 端点

java - Spring WebFlux - ServerResponse Jackson 序列化程序问题

java - 有没有办法将实体加载到派生类的实例中?

java - 创建 EJB 3.0 或 3.1

c# - uwp 解析或反序列化 httpclient 响应

android - 如何使用 Retrofit 2.0 解析带有动态键的 json?