{foo:"bar"}
を?...&foo=bar&...
から作る方法を見つけようとしましたが、グーグルでグーグルでjQuery.params
にしか戻っていません。任意の提案をお願いします(組み込みのjavascript関数、jquery、アンダースコア.js - すべて)それとも、私は自分でそれを実装する必要がありますか(大した手間ではなく、ホイールを再開発したくない)か?クエリ文字列をJSONオブジェクトに逆シリアル化する
8
A
答えて
4
ベンアルマンのjQuery BBQ
とjQuery.deparam
があります。
http://benalman.com/code/projects/jquery-bbq/examples/deparam/
最初の例は、あなたが必要とする正確に何である
The opposite of jQuery.param, pretty much.
として記載されています。
6
私はここに私の機能を投稿しています。もし他の人が見ていると思いますが、jqueryネイティブJSの必要がまったくないように思っています。私は同じことを探して、最終的には他の人の答えを見た後にこの関数を作っていたので:
function queryStringToJSON(queryString) {
if(queryString.indexOf('?') > -1){
queryString = queryString.split('?')[1];
}
var pairs = queryString.split('&');
var result = {};
pairs.forEach(function(pair) {
pair = pair.split('=');
result[pair[0]] = decodeURIComponent(pair[1] || '');
});
return result;
}
console.log(queryStringToJSON(window.location.href));
console.log(queryStringToJSON('test=1&check=wow'));//Object {test: "1", check: "wow"}
6
実際@talsibonyことによって、上記の答えは、(test=1&test=2&test=3&check=wow&such=doge
など)、アカウントのクエリ文字列の配列に入れていません。これは私の実装です:
function queryStringToJSON(qs) {
qs = qs || location.search.slice(1);
var pairs = qs.split('&');
var result = {};
pairs.forEach(function(p) {
var pair = p.split('=');
var key = pair[0];
var value = decodeURIComponent(pair[1] || '');
if(result[key]) {
if(Object.prototype.toString.call(result[key]) === '[object Array]') {
result[key].push(value);
} else {
result[key] = [ result[key], value ];
}
} else {
result[key] = value;
}
});
return JSON.parse(JSON.stringify(result));
};
1
シンプルでフラットなクエリ文字列のため、このようなものがここに
const queryStringToObject = (queryString) => {
let obj = {}
if(queryString) {
queryString.slice(1).split('&').map((item) => {
const [ k, v ] = item.split('=')
v ? obj[k] = v : null
})
}
return obj
}
関連する問題
- 1. JSON文字列を.NETオブジェクトに逆シリアル化する方法は?
- 2. JSON文字列をC#オブジェクトに逆シリアル化する
- 3. jsonの文字列をドメインオブジェクトに逆シリアル化する方法は?
- 4. newtonsoftを使用してjson文字列をC#オブジェクトに逆シリアル化する
- 5. JSONをLINQオブジェクトに逆シリアル化する
- 6. JSONをオブジェクトに逆シリアル化する
- 7. メトロアプリケーション - JSON文字列を逆シリアル化する
- 8. コード内のJSON文字列を逆シリアル化する
- 9. newtonsoftまたはrestsharpでjson文字列を逆シリアル化する
- 10. LINQオブジェクトをJSON文字列にシリアル化する - 巨大な文字列
- 11. jsonを配列で逆シリアル化する
- 12. 逆シリアル化JSON
- 13. JSON文字列をリフレクションを使用してクラスに逆シリアル化する
- 14. C#オブジェクトへのXML文字列の逆シリアル化
- 15. エンティティフレームワーク:シーンの背後にあるJSON列のシリアル化/逆シリアル化
- 16. JSONオブジェクトをC#オブジェクトに逆シリアル化する
- 17. GSON-JSONクラス内のオブジェクトの逆シリアル化
- 18. データバインドjson配列を逆シリアル化
- 19. C#:asp.net 3.5:JSON-jsonの文字列またはオブジェクトを逆シリアル化しますか?
- 20. jsonの文字列を逆シリアル化して、どのタイプのオブジェクトを実行時に取得するのか?
- 21. JSON.NET:JSONオブジェクトへのjson文字列プロパティのシリアル化
- 22. JSONをJava enumに逆シリアル化する
- 23. 特定のXML文字列を逆シリアル化する
- 24. 文字列からXMLを逆シリアル化する
- 25. 文字列からJavaバイナリツリーを逆シリアル化する
- 26. JSON StringをVB.netオブジェクトに逆シリアル化する
- 27. jsonオブジェクトを特定のサブクラスに逆シリアル化する方法
- 28. 正しいJson逆シリアル化をJavaオブジェクトにする方法は?
- 29. 逆シリアル化XML文字列:XMLドキュメント(1,2)にエラーがある
- 30. MSMQ複合オブジェクトのシリアル化/逆シリアル化
うまくトリックを行いますあなたが行く:http://stackoverflow.com/questions/901115/get -query-string-values-in-javascript。小さな検索が常に役立ちます。 – ggozad
@ggozad:値を取得するだけでなく、* JSON /オブジェクト*への変換を検索しました。リンクありがとう!残念なことに、この関数はjQueryのどこかで標準ではありません。 – BreakPhreak