解決JSONField、JsonProperty不生效的問(wèn)題
JSONField、JsonProperty不生效
@JSONField(name = "env_version") private String envVersion;
問(wèn)題
openfeign請(qǐng)求接口一直獲取的是線上的小程序碼,無(wú)法獲取到develop環(huán)境的小程序碼
排查
1、打開(kāi)openfeign debug日志
#level后面是自己feign接口的包名,另外還需要添加feign的日志配置類(lèi) logging.level.com.lf.feign: debug
#feign的日志配置類(lèi) @Configuration public class OpenFeignConfiguration { @Bean public Logger.Level level() { return Logger.Level.FULL; } }
2、查看openfeign請(qǐng)求日志
發(fā)現(xiàn)用JSONField標(biāo)記字段發(fā)現(xiàn)沒(méi)有轉(zhuǎn)成對(duì)應(yīng)的env_version,導(dǎo)致openfeign請(qǐng)求結(jié)果一直響應(yīng)的是默認(rèn)值
3、分析問(wèn)題
JSONField是alibaba fastjson包中的注解,而openfeign底層使用的是jackson,導(dǎo)致不能識(shí)別JSONField注解。改成jackson 的JsonProperty的注解即可
@JsonProperty("env_version") private String envVersion;
總結(jié)
對(duì)于json注解的使用,要相互對(duì)號(hào),用哪個(gè)json的注解,就要用對(duì)應(yīng)的json序列化。
有些接口很容易發(fā)現(xiàn)問(wèn)題,但是對(duì)于一些有駝峰和_命名的字段接口,而且_的字段如果沒(méi)有值,還給了默認(rèn)值,導(dǎo)致調(diào)用接口還是成功。等到上線后發(fā)現(xiàn)字段值不生效,只能一直返回默認(rèn)值就尷尬了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成Swagger2生成接口文檔的方法示例
我們提供Restful接口的時(shí)候,API文檔是尤為的重要,它承載著對(duì)接口的定義,描述等,本文主要介紹了SpringBoot集成Swagger2生成接口文檔的方法示例,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶信息
這篇文章主要介紹了SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶信息,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下2021-04-04使用spring的restTemplate注意點(diǎn)
這篇文章主要介紹了使用spring的restTemplate注意點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10IntelliJ IDEA 設(shè)置數(shù)據(jù)庫(kù)連接全局共享的步驟
在日常的軟件開(kāi)發(fā)工作中,我們經(jīng)常會(huì)遇到需要在多個(gè)項(xiàng)目之間共享同一個(gè)數(shù)據(jù)庫(kù)連接的情況,默認(rèn)情況下,IntelliJ IDEA 中的數(shù)據(jù)庫(kù)連接配置是針對(duì)每個(gè)項(xiàng)目單獨(dú)存儲(chǔ)的,幸運(yùn)的是,IntelliJ IDEA 提供了一種方法來(lái)將數(shù)據(jù)庫(kù)連接配置設(shè)置為全局共享,從而簡(jiǎn)化這一過(guò)程2024-10-10Spring?Boot之Validation自定義實(shí)現(xiàn)方式的總結(jié)
這篇文章主要介紹了Spring?Boot之Validation自定義實(shí)現(xiàn)方式的總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Java并發(fā)編程 interrupt()方法示例詳解
interrrupt()方法可以用來(lái)打斷正在運(yùn)行的線程,也可以打斷sleep()、wait()、join()情況下的線程,但是這些情況下被打斷線程的打斷標(biāo)記不同,這篇文章主要介紹了Java并發(fā)編程 interrupt()方法示例詳解,需要的朋友可以參考下2023-06-06Java.SE數(shù)組的一些常見(jiàn)練習(xí)題
數(shù)組可以看成是相同類(lèi)型元素的一個(gè)集合,在內(nèi)存中是一段連續(xù)的空間,這篇文章主要給大家介紹了關(guān)于Java.SE數(shù)組的一些常見(jiàn)練習(xí)題,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02