1

假设我使用 JAVA 使用基于 REST 的服务,并且我有一个 JSON 响应对象,如下所示。

<Response> "some text" <Response>
  <xyz_1> "some text" <xyz_1>
  <abc_action1>  "some text" <abc_action>
  <abc_action2>  "some text" <abc_action>
  <abc_action3>  "some text" <abc_action>
  <abc_action4>  "some text" <abc_action>
<Response> "some text" <Response>

在当前实现中,该响应类对应的 Java 类有 5 个实例变量 { xyz_1, abc_action1, abc_action2, abc_action3, abc_action4} 带有 getter 和 setter 方法

所以我想要做的就是取决于传入 REST 调用的 queryParameters 我想隐藏(不发出)响应对象中的标签之一。这可能是因为 Java 类定义了 5 个变量吗?

4

2 回答 2

1

如果您使用 jersey 之类的东西来实现 REST,那么您可以使用 @JsonIgnore 来完成该任务。如果您使用不同的提供程序,那么至少您可以查看源代码并自己做。

于 2013-10-31T19:16:02.303 回答
0

一种解决方案是创建一个ResponseDTO类(DTO 与数据传输对象一样,请参阅本文以获得非常简短的介绍)并让您的 (*) 服务返回该类的对象而不是Response对象。在您的服务中,您将仅初始化ResponseDTO对象中适合当前查询参数的那些字段。

或者,您可能会返回一个的非托管Response对象,同样,您将只初始化那些适合当前查询参数的字段。您应该在这里小心,不要对托管的Response 对象进行更改,因为这些更改将保留在数据库中。

(*) 这里的“你”和“你的”指的是匿名的“你”而不是 OP,他们现在一定已经以一种或另一种方式弄清楚了这一点。:)

于 2018-12-07T13:56:43.527 回答