java – 以编程方式更改JsonProperty(Access.WRITE_ONLY)
发布时间:2020-05-25 00:10:01 所属栏目:Java 来源:互联网
导读:我的 Java对象有一些注释只写入的字段,因为它们不应该通过REST接口发送给用户. @JsonProperty(access = Access.WRITE_ONLY) private ListInteger integerList; 现在我正在尝试实现一个admin-controller,应该发送这些字段. 我的问题是,我可以使用控制器中的代
|
我的 Java对象有一些注释只写入的字段,因为它们不应该通过REST接口发送给用户. @JsonProperty(access = Access.WRITE_ONLY) private List<Integer> integerList; 现在我正在尝试实现一个admin-controller,应该发送这些字段. 在此先感谢您的帮助, Codehai 解决方法是的,使用fasterXML注释有一种更简单的方法.使用fasterXML创建过滤器,并定义要过滤的字段.可以使用硬编码定义属性列表,也可以在运行时计算属性列表. @JsonFilter("PersonFilter")
public class Person
{
private List<Integer> integerList;
private Integer creditCardNUmber;
private String firstName;
private String lastName;
public static FilterProvider getFilter(){
Set<String> fieldsToFilter= new HashSet<>(Arrays.asList("creditCardNUmber","integerList");
SimpleBeanPropertyFilter theFilter = SimpleBeanPropertyFilter
.serializeAllExcept(fieldsToFilter);
FilterProvider filters = new SimpleFilterProvider()
.addFilter("PersonFilter",theFilter);
return filters;
}
}
序列化对象时,可以使用预定义的属性列表进行过滤(public static FilterProvider getFilter(){..}),或者在运行时定义它们. public static String GetObjectAsStringWithFilter(FilterProvider filters,Object jsonObject)
{
if (jsonObject == null)
{
return null;
}
String objectAsString = null;
try
{
objectAsString = objectMapper.writer(filters).writeValueAsString(jsonObject);
}
catch (Exception e)
{
...
}
return objectAsString;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
