Java後臺接收前端傳遞的陣列物件引數的處理
之前有個需求,需要從前端向後臺傳遞一個物件,該物件裡不僅含有屬性,還包含了一個陣列
類似物件:
Object:{屬性1:'',屬性2:'',...,children:[{屬性3:''},{},...]}
這樣的一個物件。後臺使用一個一對多的實體類進行接收,但報錯。(前端使用的是es6,後臺使用springboot)
類似實體類:
public class Xxx1 {
private String 屬性1;
private String 屬性2;
...
private List<Xxx2> children;
}
百度了很多種方法:使用@RequestBody、@RequestParam、設定contentType等方法都不行。
最後使用轉換JSON的方法實現了引數的傳遞。
具體做法:
前端:
使用JSON.stringify()方法將其轉換為JSON字串
url: url,
data: { jsonStr: JSON.stringify(Object), },
最後得到的資料類似於:
{'屬性1':'','屬性2':'',...,'children':[{'屬性3':''},{''},...]}
後端:
controller方法:
@PostMapping(value = 'url',produces = "application/json")
public void upsertXxx(String jsonStr) {
// 這裡使用的alibaba的fastjson包
// 先將字串轉換為JSON物件
JSONObject jsonObj = JSONObject.parseObject(jsonStr);
// 使用toJavaObject()方法將其轉換為Xxx物件
// Xxx物件中的list集合也會得到相應的值
Xxx xxx= jsonObj.toJavaObject(Xxx.class);
...
// 業務實現
...
}
相關文章
- Ajax傳遞陣列 (PHP後臺接收)陣列PHP
- Js傳遞陣列引數到後臺controller的方式JS陣列Controller
- 後臺接收Json請求引數相容陣列和單個物件JSON陣列物件
- c++ -- 二維陣列引數傳遞C++陣列
- Shell自學二(引數傳遞和陣列)陣列
- 給一個介面傳遞引數,並接收返回的引數
- 解決SpringBoot在後臺接收前臺傳遞物件方式Spring Boot物件
- MyBatis傳入多個引數,傳入陣列和列表資料的處理MyBatis陣列
- java 中引數的傳遞Java
- ajax從JSP傳遞物件陣列到後臺JS物件陣列
- 前端如何優雅處理類陣列物件?前端陣列物件
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- Java方法04:命令列傳遞引數、可變引數Java命令列
- JSP向後臺傳遞引數的四種方式JS
- jdbctemplate呼叫儲存過程傳遞陣列引數JDBC儲存過程陣列
- 前端ajax非同步傳值以及後端接收引數的幾種方式前端非同步後端
- 獲取位址列url連結?後面傳遞的引數
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- php 陣列傳到前端 js進行處理PHP陣列前端JS
- 如何給js的onclick事件處理函式傳遞引數JS事件函式
- 給vue元件傳遞物件或是陣列Vue元件物件陣列
- java 傳遞引數的兩種方式Java
- javascript如何給事件處理函式傳遞引數JavaScript事件函式
- js如何給繫結的事件處理函式傳遞引數JS事件函式
- SpringMVC中@RequestBody接收前端傳來的多個引數SpringMVC前端
- 二級指標,二維陣列函式引數傳遞指標陣列函式
- web前端陣列處理之陣列去重Web前端陣列
- 引數為*&與*的區別以及二維陣列傳遞時列數不對等的區別陣列
- Java 從陣列來看值傳遞和引用傳遞Java陣列
- 獲取url中?後面傳遞的引數
- 使用arguments物件獲取函式傳遞的引數物件函式
- 當 Vue 處理陣列與處理純物件的方式一樣Vue陣列物件
- uploadify前臺上傳檔案,java後臺處理的例子Java
- web前端陣列處理之扁平化陣列Web前端陣列
- Android 頁面跳轉傳遞引數及頁面返回接收引數Android
- JS的方法引數傳遞(按值傳遞)JS
- postman測試多檔案上傳,並且後臺接收檔案陣列Postman陣列