当前位置: 首页> 教育> 高考 > 调接口某个属性信息为null

调接口某个属性信息为null

时间:2025/8/21 11:56:25来源:https://blog.csdn.net/s07aser123/article/details/142202192 浏览次数:0次

1、问题描述

通过feign调用别的系统接口,发现有个属性,获取的值始终是null。 找接口提供方,提供方自测接口,是有返回值的。

2、问题排查

接口调用过程如图:

(1)接口提供方开发接口test

 (2) 接口提供方往接口桩的工程,写入新提供接口的接口桩信息,并打成新的jar包发版

(3)接口调用方,maven引用接口桩的jar包。直接通过xxXtService方法调用

有问题的属性名称是

private String xName;

属性第二个字母是大写,看到这个就怀疑是因为它引起的。

Tjxx属性的get、set是通过@data自动生成。  看class类,通过@data生成的属性getXName,setXName。 通过反射生成的属性是getxName、setxName。 由此可见就是因为xName第二个字母是大写引起的问题

3、解决过程

1、接口提供方在它们系统把@data去掉,手动生成get、set,没改接口桩的get、set因为接口桩工程是全平台用,改动属性会引起其他平台改代码。

   结果:还是不行,xName还是为null

2、修改接口桩工程的Tjxx

@JsonProperty("xName")
private String xName;

通过 @JsonProperty,你可以指定字段在序列化为 JSON 时应该使用的键名,或在反序列化时从 JSON 中获取值的键名

结果:接口调用方成功获取属性

4、总结

feign调用,存在序列化反序列化过程,接口返回值的属性,第二个字母最好不用大写,否则取值为null。 如果是历史接口已经是不规范的属性,可以通过加@JsonProperty方法,成功获取属性

关键字:调接口某个属性信息为null

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: