2016-12-20 10 views
0

平易なjavascriptハッシュ/オブジェクトをクエリ文字列に変換するためにインポートできる関数はありますか?javascriptオブジェクトをクエリ文字列に変換するためのインポート可能な関数はありますか?

  • はjQueryのに基づいてすることはできません(私はFASTBOOTサポートを必要とする)
  • ネストされたオブジェクトに&の配列をサポートしている必要があります:

    だから、ここでは要件があります。

  • はエンバーフレームワーク(なしプラグイン)私は本当に私は、これはエンバーの内部で行われている知っているので、別のプラグインの依存関係を持っていたくないよ

に構築する必要があります。ネストされた配列やオブジェクトのプロパティを持つオブジェクトは、Railsが精通しているブラケットの構文に変換されます:私は、ネストされたことにより、意味を明確にするために

更新

{my_values: [1,2]} => ?my_values[]=1&my_values[]=2

{nested: {key: value}} => ?nested[key]=value

+1

それはあなたを助けるかもしれない、この答えをチェックしてみて下さい:http://stackoverflow.com/a/1714899/1370336あなたが実行したクエリ刺さを書くことができます –

+0

encodeURIComponetメソッドを使用して、URLで使用するためにフォーマットします。 [jQueryの$ .PARAM](http://james.padolsey.com/jquery/#v=1.11.2&fn=jQuery.param)が行う、あなたが簡単にjQueryの –

+0

。依存関係の量は最小です。 JSONオブジェクトということ、それはエンバーの$ .PARAM機能があった場合、その後URI – adeneo

答えて

0

これはそれを行うだろう:

function toQueryString (obj){ 
    var result =[]; 
    for(var i in obj){ 
     if(obj.hasOwnProperty(i)){ 
      if(typeof obj[i] === "object") result.push(toQueryString(obj[i])) 
      else result.push(encodeURIComponent(i) + "=" + encodeURIComponent(obj[i])); 
     } 
    } 
    return result.join("&"); 
} 

Example

編集:ネストされたオブジェクトのための追加再帰

+0

"ネストされたオブジェクトと配列をサポートしていなければなりません。 "アスカーが意味するが、このソリューションは間違いなく、ネストされた値を処理しません何 本当にわかりません。 –

+1

まあ、ええ、クエリ文字列でのネストされたオブジェクトは、編集がネストされたオブジェクトに再帰する – qxz

+0

...私は –

関連する問題