json扁平化(SpringMVC向后台传输数据)
var args = {
a: {aa:[1, 2, 3, 4, [5], 6, 7, {aaa: 8}]},
b: {bb: null},
c: null,
d: [1, 2, 3, [4], 5, 6, 7, 8]
};
function flutter(input){
let end = {}
if(input instanceof Array){
for(let i = 0; i < input.length; i++){
if(input[i] instanceof Array){
let returns = flutter(input[i]);
for(let key in returns) {
end["[" + i + "]" + key] = returns[key];
}
}else if(input[i] instanceof Object){
let returns = flutter(input[i]);
for(let key in returns) {
end["[" + i + "]." + key] = returns[key];
}
}else{
end["[" + i + "]"] = input[i];
}
}
} else if(input instanceof Object){
for(let key in input){
if(input[key] instanceof Array){
let returns = flutter(input[key]);
for(let k in returns) {
end[key + k] = returns[k];
}
}else if(input[key] instanceof Object){
let returns = flutter(input[key]);
for(let k in returns) {
end[key + "." + k] = returns[k];
}
}else{
end[key] = input[key];
}
}
}
return end;
}
var result = flutter(args);
console.log(result);