解决@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方法上,传递给前台的此对象便不会展示这个属性。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论