Javascript HTTP查询生成器输出

Javascript HTTP查询生成器输出,javascript,builder,encoder,Javascript,Builder,Encoder,我有一个http查询生成器的代码块。但是,如果内部包含对象+数组+对象,则会导致问题 编码器: const编码器={ 编码:函数(参数、前缀){ var项目=[]; for(参数中的变量字段){ 变量键=前缀?前缀+“[”+字段+“]”:字段; 变量类型=参数类型[字段]; 开关(类型){ 案例“对象”: if(params[field].constructor==Array){ 如果(参数[field]。长度>0){ params[field].forEach(函数(val){ 项目推送(按

我有一个http查询生成器的代码块。但是,如果内部包含对象+数组+对象,则会导致问题

编码器:

const编码器={
编码:函数(参数、前缀){
var项目=[];
for(参数中的变量字段){
变量键=前缀?前缀+“[”+字段+“]”:字段;
变量类型=参数类型[字段];
开关(类型){
案例“对象”:
if(params[field].constructor==Array){
如果(参数[field]。长度>0){
params[field].forEach(函数(val){
项目推送(按键+“[]”=“+val);
},这个);
}否则{
G
项目。按(键+“=”);
}
}否则{
items=items.concat(this.encode(params[field],key));
}
打破
案例“功能”:
打破
违约:
items.push(键+“=”+参数[字段]);
打破
}
}
返回项目。加入(“&”);
}
}
让数据={
“数据”:{
“sub”:{
“sub2”:[2,3,4]
}
}
}
让数据2={
“数据”:{
“sub”:[{
“sub2”:[2,3,4]
}]
}
}
控制台.log(编码器.encode(数据))

console.log(encoder.encode(data2))
问题已解决。我在jquery中提取了$.param部分,我认为有一段代码可以为许多人完成这项工作。感谢所有帮助过我的人

var rbracket=/\[\]$/,,
class2type={}
函数类型(obj){
if(obj==null){
返回obj+“”;
}
//支持:obj中的android0&(长度-1);
}
每个函数(obj、回调){
变量长度,i=0;
if(类isArrayLike(obj)){
长度=对象长度;
对于(;i}
问题已解决。我在jquery中提取了$.param部分,我认为有一段代码可以为许多人完成这项工作。感谢所有帮助过我的人

var rbracket=/\[\]$/,,
class2type={}
函数类型(obj){
if(obj==null){
返回obj+“”;
}
//支持:obj中的android0&(长度-1);
}
每个函数(obj、回调){
变量长度,i=0;
if(类isArrayLike(obj)){
长度=对象长度;
对于(;i