JSONFIlter和REST返回Object而不是string

时间:2014-05-22 17:26:49

标签: json jersey jackson

我正在使用JsonFilter来过滤属性。为此我需要通过跟随How to return a partial JSON response using Java?

将我的REST api返回类型修改为String(json string)而不是Objects

问题是如何让REST api返回我的对象​​类型而不是字符串,仍然使用JsonFilter。

// Filter object
@JsonFilter ("userFilter")
public class  User { }

// REST
@GET
@Produces("application/json")
public UserWrapper getUsers(@QueryParam("fields") String fields) {
     UserWrapper  r = new UserWrapper  ();
     List<User>   users = x.getUsers(fields);
     r.setUsers(users)
     return r;
}

问题是我如何让REST界面返回&#39; UserWrapper&#39;而是Json String? UserWrapper没有JsonFilter,但包含具有JsonFilter的用户。

感谢您的投入。

VBP

1 个答案:

答案 0 :(得分:0)

现在不需要在资源方法中创建ObjectMapper并返回一个字符串来自定义结果对象的JSON表示。

如果您使用Jackson Views,则可以直接在资源方法上添加@JsonView注释。请参阅此JIRA more information

您还可以使用the Jackson 2.3 ObjectWriterModifier/ObjectReaderModifier feature在资源方法中自定义Jackson对象编写器。您可以使用它来覆盖当前的Jackson视图(example)或配置the Jackson filtersexample)。