解决@JsonIgnore的使用以及自己踩坑
作者:骑猪撞地球QAQ
这篇文章主要介绍了解决@JsonIgnore的使用以及自己踩坑,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
解决@JsonIgnore使用及踩坑
如题所示:
@JsonIgnore注解:在json序列化时将对象中的一些属性忽略掉,标记在属性或者方法上,返回的json数据不包含该属性。
项目采用微服务模式,需要通过Feign调用其他服务,使用Page(自己公司底层封装)传参,字段queryCondition,具体如下所示,但参数始终未能传递到目标服务中,在排查了其他问题之后,查看Page底层代码,发现在Page内部分字段上有@JsonIgnore注解,即找到问题。
/** 查询条件*/ @JsonIgnore private Map<String,Object> queryCondition = new HashMap<String,Object>();
使用该注解在大部分情况下都是为了使该字段不返回,通过Feign调用的时候即需要序列化,故而该属性被忽略置空。
注:为了找到问题所在,打印了两个服务中的线程名,发现通过Feign调用接口会在目标服务内产生新的线程,和原请求并非同一个线程。
注解@JsonIgnore的作用
遇到一个问题我后端有数据,返回前端json数据里面一直没有,在次总结哈。
1.使用方法:一般标记在属性或者方法上,返回的json数据即不包含该属性。
2.作用:在json序列化时将java 中的一些属性忽略掉,序列化和反序列化都受影响。
3.图中属性在通过Json传出时就不会显示
使用@JsonIgnore控制实体类属性是否返回前台
引用的包
将 @JsonIgnore添加在属性的set方法上,传递给前台的此对象便不会展示这个属性。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。