看来你不能混合@JsonIgnore和@JsonView。我想默认隐藏一个字段,但在某些情况下显示它。
基本上我已经有了这个设置:-
class Parent extends Model {
public Long id;
public Child child;
}
class Child extends Model {
public Long id;
@JsonView(Full.class)
public String secret;
public static class Full {};
}
并且想用play.libs.Json.toJson(parent)
渲染时不带 child.secret,并且
ObjectMapper objectMapper = new ObjectMapper();
ObjectWriter w = objectMapper.writerWithView(Child.Full.class);
return ok(w.writeValueAsString(child));
使用 child.secret 进行渲染。有什么办法可以做到这一点吗?即是否有任何方法可以将字段设置为默认忽略,但包含在特定的 JsonView 中?
目前,两个调用都包含该秘密。
Thanks!
一旦有了对象映射器,您就可以像当前使用的那样有效地使用它play.libs.Json.toJson(parent)
,并得到你想要的。
所以每当你之前使用play.libs.Json.toJson(parent)
,只需使用new ObjectMapper().writeValueAsString()
你不会知道你的秘密。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)