前端传入数组 至后端 的解决方案 (Java后端)
如果你还不了解后端需要的参数类型,那么请先看 –>** 点我传送
在了解后端需要什么参数之后,那我们只需要将参数转换为想要的就行了!
这里我提供我自己写好的函数,费了大半天时间!如果对你有所帮助,请给我文章点个赞把!!
实现代码:
<!DOCTYPE html >
<head>
<meta charset="utf-8" />
<title>前台传入数组 至 Java后台的解决方案</title>
</head>
<body>
<script>
var data = {
id : 1,
name : 'qiaolin',
sex : '男',
role : [
{id:1, name:'管理员',
menu:[
{id : 1, name : '我的空间'},
{id : 3, name : '角色管理'}]
},
{id:2, name:'阿帅',
{id : 1, name : '人脸识别'},
{id : 1, name : '管理女友'}]
},
{id:3, name:'司草',
menu:[{id : 2, name : "管理object"}]
}
],
};
function parseJson(data, newData, prefix, isArray) {
if(!prefix){
prefix = '';
}
// 循环所有键
for(var key in data) {
var element = data[key];
if(element.length > 0 && typeof(element) == "object") {
var tempPrefix;
if(isArray ){
tempPrefix = prefix + '.';
}
if(prefix){
tempPrefix = tempPrefix ? tempPrefix : prefix + '.' + key;
}else{
tempPrefix = key;
}
parseJson(element, newData, tempPrefix, true);
} else if(typeof(element) == "object"){
var tempPrefix;
if(isArray){
tempPrefix = prefix + '[' + key + ']';
}else if(prefix){
tempPrefix = prefix + '.' + key;
}else{
tempPrefix = key;
}
parseJson(element, newData, tempPrefix, false);
}else {
if(typeof(element) == 'undefined' || !element){
continue;
}
if(!prefix){
newData[key] = element;
}else if(isArray){
newData[prefix + '[' + key + "]"] = element;
}else{
newData[prefix + '.' + key ] = element;
}
}
}
}
var newData = {};
parseJson(data, newData);
debugger;
</script>
</body>