解码JSON,包括JavaScript中URL参数的数组

解码JSON,包括JavaScript中URL参数的数组,javascript,json,object,url,get,Javascript,Json,Object,Url,Get,我有这个网址: http://localhost:5000/?orderID=000000034&fullname=Leonard+Niehaus&email=test%40gmail.com&items%5B0%5D%5BitemId%5D=9&items%5B0%5D%5Btitle%5D=Joghurt&items%5B0%5D%5Bqty%5D=1.0000&items%5B1%5D%5BitemId%5D=8&items%5B1%

我有这个网址:

http://localhost:5000/?orderID=000000034&fullname=Leonard+Niehaus&email=test%40gmail.com&items%5B0%5D%5BitemId%5D=9&items%5B0%5D%5Btitle%5D=Joghurt&items%5B0%5D%5Bqty%5D=1.0000&items%5B1%5D%5BitemId%5D=8&items%5B1%5D%5Btitle%5D=Alpenmilch&items%5B1%5D%5Bqty%5D=1.0000
现在,我尝试将URL编码为一个对象。这是我目前的尝试:

function URLToArray(url) {
  var request = {};
  var pairs = url.substring(url.indexOf('?') + 1).split('&');
  for (var i = 0; i < pairs.length; i++) {
      if(!pairs[i])
          continue;
      var pair = pairs[i].split('=');
      request[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
   }
   return request;
}
但是,我需要此函数以JSON数组的形式返回数组,而不是当前的方式:


如何让函数返回我的对象数组?

您可以首先使用获取对象

使用正则表达式循环的示例:

常量url=http://localhost:5000/?orderID=000000034&fullname=Leonard+Niehaus&email=test%40gmail.com&items%5B0%5D%5BitemId%5D=9&items%5B0%5D%5bitemtitle%5D=joghrt&items%5B0%5D%5Bqty%5D=1.0000&items%5B1%5D%5D=8&items%5B1%5D%5bitemtitle%5D=Alpenmilch&items%5B1%5Bqty%5D%5D=1.0000; 常量正则表达式=/^[a-z0-9]+?\[[a-zA-z0-9]+\]*/mi; 函数URLToArrayurl{ url=解码组件url; const args=new URLSearchParamsurl.split'?'[1]; 让请求={}; args.forEachvalue,键=>{ 让baseKey=key; 让ogValue=value; 设lastKey=; 而m=regex.execkey!==null{ 如果m[1]{ baseKey=m[1]; value=request[baseKey]| |{}; 请求[baseKey]=值; } 如果m[2]{ 值=值[lastKey]| |值; 值[m[2]]=值[m[2]]| |{}; lastKey=m[2]; } key=key.replacem[0]; } 如果最后一个键{ value[lastKey]=ogValue; }否则{ 请求[baseKey]=值; } }; 返回请求; }
console.logURLToArrayurl;您是否可以显示自己的代码尝试,而不是当前从该链接执行的复制/粘贴作业?因此,这是否回答了您的问题?