我正在使用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
答案 0 :(得分:0)
现在不需要在资源方法中创建ObjectMapper并返回一个字符串来自定义结果对象的JSON表示。
如果您使用Jackson Views,则可以直接在资源方法上添加@JsonView
注释。请参阅此JIRA more information。
您还可以使用the Jackson 2.3 ObjectWriterModifier/ObjectReaderModifier feature在资源方法中自定义Jackson对象编写器。您可以使用它来覆盖当前的Jackson视图(example)或配置the Jackson filters(example)。