项目场景:
将arr带下表的对象数据转换为集合问题描述:
前端post传递后台接受数据带下标,后台无法正常获取到。通过List无法接收,但是list对象却可以<script src="https://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var arr = {"a[0]":"a0","a[1]":"a1","a[2]":"a2","b[0]":"b0","b[1]":"b1","list":[{a:1,b:1},{a:2,b:2}],applyUser:"我没有下标"};
console.log(arr);
function subcriptConvertJSON(arr, listName){
var dataList = {};
if(listName == null || listName == ""){
listName = "list";
}
$.each(arr,function(idx,item){
if(idx.split("[").length >=2){
var dataIndex = idx.split("[")[1].split("]")[0];
if(dataList[listName] == null){
dataList[listName] = [];
}
if(dataList[listName][dataIndex] == null){
dataList[listName][dataIndex] = {};
}
var dataName = idx.split("[")[0];
dataList[listName][dataIndex][dataName] = item;
}
});
return dataList;
}
var dataList = subcriptConvertJSON(arr, "list");
console.log(dataList);
console.log(JSON.stringify(dataList));
});
</script>
运行结果:
转换过程中,只处理数据变量名带下标的: