gpt4 book ai didi

java - JSON 响应 : Spring with JAXB

转载 作者:行者123 更新时间:2023-12-01 05:06:18 24 4
gpt4 key购买 nike

技术堆栈: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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com