springboot接口參數(shù)為List的問題
簡單接口參數(shù)
springboot接口訪問,如果是走http請求,那么參數(shù)會默認轉(zhuǎn)換成鍵值對格式,或者是json字符串形式的。
今天就遇到一個場景,我需要一個list結(jié)構(gòu)的參數(shù),list里面又是對象,那我們該怎么傳參呢?
我們不能再瀏覽器上直接拼接參數(shù)發(fā)請求了,例如:
這樣的格式是不被允許的,請求會報錯。
那么我們轉(zhuǎn)換思路,既然是json格式的參數(shù),那我們就傳json格式
設(shè)置headers
Content-type 的值為application/json
組織傳值參數(shù)list數(shù)據(jù)
在body中,傳值參數(shù),list 使用[]括起來
代碼實現(xiàn)請求
public void queryLiveCourseInfoTest(){ JSONArray jsonArray = new JSONArray(); JSONObject json1 = new JSONObject(); json1.put("dn","123"); json1.put("bossCode","34455"); jsonArray.add(json1); JSONObject json2 = new JSONObject(); json2.put("dn","234"); json2.put("bossCode","66666"); jsonArray.add(json2); String arr = jsonArray.toJSONString(); System.out.println("請求參數(shù):"+arr); String url = nativUrl+""; try { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); headers.setContentType(type); HttpEntity<ElecMeterDataApi> entity = new HttpEntity<ElecMeterDataApi>(arr,headers); String res = restTemplate.postForObject(url, entity, String.class); log.info("結(jié)果:"+res); } catch (RestClientException e) { log.error("請求異常" + e.getMessage()); } }
controller層設(shè)置兩個注解@ResponseBody 和@RequestBody
@ResponseBody 沒有該注解的時候,會發(fā)生postman 請求找不到error 404;
@RequestBody 沒有該注解的時候,會發(fā)生參數(shù)值傳輸不過去;
這樣我們就可以實現(xiàn)通過接口直接傳遞list對象數(shù)據(jù)。
其中,list中的對象,我們在傳參數(shù)時只要組織的json格式的數(shù)據(jù)中,包含該對象的屬性以及對應(yīng)值,接口參數(shù)的對象就可以接收到該屬性值。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Elasticsearch倒排索引詳解及實際應(yīng)用中的優(yōu)化
Elasticsearch(ES)使用倒排索引來加速文本的搜索速度,倒排索引之所以高效,主要是因為它改變了數(shù)據(jù)的組織方式,使得查詢操作可以快速完成,這篇文章主要給大家介紹了關(guān)于Elasticsearch倒排索引詳解及實際應(yīng)用中優(yōu)化的相關(guān)資料,需要的朋友可以參考下2024-08-08Java集合ArrayList、LinkedList、HashMap、HashSet最大容量
在開發(fā)中我們使用比較多的集合就是List、Set和Map了,并且我們也知道大部分用的基本上都是ArrayList、LinkedList、HashMap、HashSet或者TreeSet這幾個集合,你知道他們的最大容量,感興趣的可以了解一下2023-12-12Java面向?qū)ο髮崿F(xiàn)汽車租賃系統(tǒng)
這篇文章主要為大家詳細介紹了Java面向?qū)ο髮崿F(xiàn)汽車租賃系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02