為什么rest接口返回json建議采用下劃線形式,不要用駝峰
今天被數(shù)據(jù)大神說(shuō)了,對(duì)接第三方接口返回的json字段我想用駝峰形式,他說(shuō)我這樣不專業(yè)。所以就改了,認(rèn)慫。
記住以后再次對(duì)接rest接口,返回的字段用下劃線形式
記錄一下改的內(nèi)容
1.使用fastjson的@JSONField(name = "is_member")
如果沒有fastjson的包,要先引入
<!-- fastjson start -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
<!-- fastjson end -->
實(shí)體參數(shù):
/** * 是否會(huì)員 */ @JSONField(name = "is_member") private String isMember;
將需要轉(zhuǎn)換的實(shí)體都標(biāo)注好后,在通過(guò)JSONObject轉(zhuǎn)jsonString的時(shí)候,就可以得到字段為下戶線的json了
String json = JSONObject.toJSONString(new Entity());
tips:可以寫個(gè)單元測(cè)試,測(cè)試一下這個(gè)轉(zhuǎn)換是否成功
另外,還可以設(shè)置json轉(zhuǎn)換時(shí)去掉某個(gè)字段,只需要這么寫
@JSONField(serialize = false)
private String name;
自己寫單元測(cè)試試一下吧
2.為了統(tǒng)一,csv文件的header字段我也用了下劃線,但是由于這個(gè)不是轉(zhuǎn)換json,所以上面的方法行不通,所以我自己轉(zhuǎn)換了一下。
public static final char UNDERLINE = '_';
/**
* @Description 駝峰式轉(zhuǎn)下劃線
*/
public static String camelToUnderline(String param) {
if (param == null || "".equals(param.trim())) {
return "";
}
int len = param.length();
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c = param.charAt(i);
if (Character.isUpperCase(c)) {
sb.append(UNDERLINE);
sb.append(Character.toLowerCase(c));
} else {
sb.append(c);
}
}
return sb.toString();
}
好了,統(tǒng)一下劃線格式就改好了。
補(bǔ)充知識(shí):@JsonProperty注解 和 @Colume注解 -- 駝峰式和下劃線之間的自動(dòng)轉(zhuǎn)換
變量名為appid,希望jackson在把對(duì)象轉(zhuǎn)換為json串時(shí)變?yōu)?AppId??梢允褂聾JsonProperty注解
@JsonProperty("user_name")
private String userName;
變量名為 createTime, 希望JPA自動(dòng)對(duì)應(yīng)到數(shù)據(jù)庫(kù)的 create_time 字段,可以使用
@Column 注解。
@Column(name = "create_time")
public Timestamp getCreateTime() {
return createTime;
}
以上這篇為什么rest接口返回json建議采用下劃線形式,不要用駝峰就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python 調(diào)用API接口 獲取和解析 Json數(shù)據(jù)
- Django+RestFramework API接口及接口文檔并返回json數(shù)據(jù)操作
- IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù)
- vue-resource:jsonp請(qǐng)求百度搜索的接口示例
- laravel 錯(cuò)誤處理,接口錯(cuò)誤返回json代碼
- spring boot 統(tǒng)一JSON格式的接口返回結(jié)果的實(shí)現(xiàn)
- 微信小程序如何調(diào)用json數(shù)據(jù)接口并解析
- 接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例
相關(guān)文章
Spring?Boot?實(shí)現(xiàn)?WebSocket?的代碼示例
WebSocket?協(xié)議是獨(dú)立的基于?TCP?協(xié)議。它與?HTTP?的唯一關(guān)系是,它的握手會(huì)被?HTTP?服務(wù)器解釋為?Upgrade?請(qǐng)求,接下來(lái)通過(guò)本文給大家介紹Spring?Boot?實(shí)現(xiàn)?WebSocket?示例詳解,需要的朋友可以參考下2022-04-04
WMTS中TileMatrix與ScaleDenominator淺析
這篇文章主要為大家介紹了WMTS中TileMatrix與ScaleDenominator淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
為什么說(shuō)要慎用SpringBoot @ComponentScan
本文主要介紹了為什么說(shuō)要慎用SpringBoot @ComponentScan,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
SpringCloud版本問題報(bào)錯(cuò)及解決方法
這篇文章主要介紹了SpringCloud版本問題報(bào)錯(cuò)及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
淺談Java異常的Exception e中的egetMessage()和toString()方法的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談Java異常的Exception e中的egetMessage()和toString()方法的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Java虛擬機(jī)如何運(yùn)行Java字節(jié)碼
這篇文章主要介紹了Java虛擬機(jī)如何運(yùn)行Java字節(jié)碼的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06

