1

文字列URLからJSONオブジェクトを作成しようとしましたが成功しませんでした

私はこれを持っています:

var URL = "http://localhost/index.php?module=search&param1=4";

私はこれを必要とする:

var dir = index.php;
var result = {
           module:'search',
           param1:4
             };

誰かがコードを手伝ってくれますか?

4

3 に答える 3

5

ここにリンクを投稿するのは完全には正しくありませんが、この場合、OPに必要なのは、URLを解析するためのライブラリだけです。

そしてここにあります:http://james.padolsey.com/javascript/parsing-urls-with-the-dom/

于 2012-09-18T02:11:47.743 に答える
3

この関数は、文字列 URL から変数と配列を解析できます。

function url2json(url) {
   var obj={};

   function arr_vals(arr){
      if (arr.indexOf(',') > 1){
         var vals = arr.slice(1, -1).split(',');
         var arr = [];
         for (var i = 0; i < vals.length; i++)
            arr[i]=vals[i];
         return arr;
      }
      else
         return arr.slice(1, -1);
   }

   function eval_var(avar){
      if (avar[1].indexOf('[') == 0)
         obj[avar[0]] = arr_vals(avar[1]);
      else
         obj[avar[0]] = avar[1];
   }

   if (url.indexOf('?') > -1){
      var params = url.split('?')[1];
      if(params.indexOf('&') > 2){
         var vars = params.split('&');
         for (var i in vars)
            eval_var(vars[i].split('='));
      }
      else
         eval_var(params.split('='));
   }

   return obj;
}

あなたの場合:

obj = url2json("http://localhost/index.php?module=search&param1=4");
console.log(obj.module);
console.log(obj.param1);

与えます:

"search"
"4"

"4"整数に変換する場合は、手動で行う必要があります。

于 2014-01-21T02:00:56.973 に答える
1

この単純なJavaScriptはそれを行います

url = "http://localhost/index.php?module=search&param1=4";
var parameters = url.split("?");
var string_to_be_parsed = parameters[1];

var param_pair_string = string_to_be_parsed.split("&");
alert(param_pair_string.length);
var i = 0;
var json_string = "{"

for(;i<param_pair_string.length;i++){
var pair = param_pair_string[i].split("=");
if(i < param_pair_string.length - 1 )
 json_string +=  pair[0] + ":'" + pair[1] + "',";
else
 json_string +=  pair[0] + ":'" + pair[1] + "'";
}

json_string += "}";
alert(json_string);
于 2012-09-18T02:57:41.310 に答える