????????在前端和后端之間傳遞數(shù)組時(shí),由于HTTP協(xié)議的限制,無法直接傳遞數(shù)組類型的參數(shù)。
請(qǐng)求參數(shù)需要被轉(zhuǎn)換為字符串格式傳遞給后端,所以需要通過 JSON.stringify() 方法將 gradeIdArray 數(shù)組轉(zhuǎn)換為一個(gè) JSON 字符串,并將其作為參數(shù)傳遞給后端。
add(){
// 將選中的權(quán)限等級(jí)的 ID 轉(zhuǎn)換為整數(shù)類型,并存儲(chǔ)在一個(gè)數(shù)組中
let gradeIdArray = []
for (let i = 0; i < this.selectGradeArray.length; i++) {
gradeIdArray.push(parseInt(this.selectGradeArray[i]))
}
// 發(fā)送 POST 請(qǐng)求,將角色名稱和權(quán)限等級(jí)的 ID 數(shù)組傳遞給后臺(tái)
axios.post('/project/role/add', {
roleName: this.addObj.name,
gradeIdArray: JSON.stringify(gradeIdArray)
}).then(resp => {
if (resp.data === 'ok') {
alert('添加成功')
// 清空
this.addObj.name = ''
this.selectGradeArray = []
} else {
alert('添加失敗')
}
});
}
????????在后端的控制器方法中,需要使用 @RequestBody 注解來接收前端傳遞過來的 JSON 數(shù)據(jù),并將其轉(zhuǎn)換成對(duì)應(yīng)的 Java 對(duì)象
@PostMapping("add")
public String add(@RequestBody Map<String, Object> params) {
String roleName = (String) params.get("roleName");
String gradeIdArrayJson = (String) params.get("gradeIdArray");
ObjectMapper mapper = new ObjectMapper();
List<Integer> gradeIdList = null;
try {
gradeIdList = mapper.readValue(gradeIdArrayJson, new TypeReference<List<Integer>>() {});
} catch (JsonProcessingException e) {
e.printStackTrace();
}
roleService.add(roleName, gradeIdList.toArray(new Integer[0]));
return "ok";
}
????????使用?@RequestBody 注解來接收前端傳遞過來的 JSON 數(shù)據(jù),并使用 Jackson 庫中的 ObjectMapper 對(duì)象將其轉(zhuǎn)換成一個(gè) List<Integer> 對(duì)象。
????????在轉(zhuǎn)換過程中,使用?TypeReference類來指定轉(zhuǎn)換的目標(biāo)類型為 List<Integer>。文章來源:http://www.zghlxwxcb.cn/news/detail-577463.html
????????然后,再將轉(zhuǎn)換后的 List<Integer> 對(duì)象轉(zhuǎn)換成一個(gè) Integer 數(shù)組,并將其傳遞給 roleService.add() 方法進(jìn)行處理。文章來源地址http://www.zghlxwxcb.cn/news/detail-577463.html
到了這里,關(guān)于前端傳遞JSON數(shù)組數(shù)據(jù)到后端(解析方法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!