首页 > 解决方案 > 使用 Jersey 和 Moxy 编组 java POJO

问题描述

我有一个基于 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"}

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

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

我该怎么做才能避免该字段出现在我的 json 响应中?

-迈克尔

标签: javarestjersey-2.0moxy

解决方案


通过遵循此答案中的建议,我设法删除了 type 字段。

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


推荐阅读