JSON 对象转换成 fromData 格式

vue axios qs.stringify()  生成的数据格式问题   ( 采用的是 application/x-www-form-urlencoded )
spring boot 后端出错 . 
  解决方法  用递归方式 convterJsonToFromData  生成对应的 from 表单提交的格式 .

  

<script >
var data = {
	"contractId":"e19cb81856c14b13b2c386c0efec8b34",
	"incomeList":[{
		"type":"PLEDGE","money":33.33,"quantity":30.3,"lastQuantity":100
	},{
		"type":"PLEDGE","money":33.33,"quantity":30.3,"lastQuantity":100,test:{"name":"张三"}
	}],
	"quitList":[{
		"type":"PLEDGE","money":33.33,"quantity":30.3,"lastQuantity":100
	}]
};

print(convterJsonToFromData(data,""));


function convterJsonToFromData( data,keys,buffer){
	if( buffer== null ){
		buffer = [];
	}
	var type  = (typeof data);
	if(Array.isArray(data)){
		for(var i = 0; i < data.length ;i++){
			var newKeys = keys ? (keys +"[" +i+"]") : "[" +i+"]" ;
			convterJsonToFromData(data[i],newKeys,buffer);
		}
	}else if( "object" == type ){
		for(var key in data){
		    var newKeys = keys ? keys + "." + key : key;
			convterJsonToFromData(data[key],newKeys,buffer)
		}
	}else{
		buffer.push(keys + "=" + encodeURIComponent(data));
	}
	return buffer.join("&");
}
function print(s){
	document.write("<h5>" +s+ "</h5>");
}
</script>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值