使用 Jersey 和 Moxy 编组 java POJO

Marshalling java POJO's with Jersey and Moxy

我有一个基于 REST 的 Web 应用程序,它基本上处理请求并发回 JSON 格式的响应。非常基本的东西。

为此,我使用了这些依赖项,只是为了澄清:

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.23.2</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.ext</groupId>
    <artifactId>jersey-spring3</artifactId>
    <version>2.23.2</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
    <version>2.23.2</version>
</dependency>
<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.moxy</artifactId>
    <version>2.7.2</version>
</dependency>

与其深入研究代码,不如在这里概述基本前提:

细节不多,但希望我们不需要更多。

我遇到的问题是返回 json,特别是一个名为 "type" 的字段。这是一个例子:

{"type":"getPersonResult","processingTime":19,"person":{"stamPersonPID":170715,"cpr":"1223344556","fornavn":"Ulrik","efternavn":"Jørgensen","foedselsdato":"1901-01-24T00:00:00+01:00","vejnavn":"Vermindsgade","husnummer":"382C","postnummer":"1160","postDistrikt":"København K"},"encryptedPersonIdentifier":"er8xGcWCviTyP2LeIquzYA%3D%3D"}

看到第一个 "type" 字段了吗?好的,我该如何摆脱它?它不是我模型的一部分(返回的对象),就像 Moxy 自动附加的一样。

我尝试添加一个 "type" 字段并用 @XmlTransient 对其进行注释,但 Moxy 忽略了它并输出了一个类型字段。

如何避免该字段出现在我的 json 响应中?

-迈克尔

按照 this answer 中的建议,我设法删除了类型字段。

具体来说,我将 @XmlType(name="") 注释添加到我的响应对象中。这解决了问题。