java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 解决@JsonIgnore使用及踩坑

解决@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方法上,传递给前台的此对象便不会展示这个属性。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文