試圖找到如何使{foo:"bar"}
從?...&foo=bar&...
,但使用Google搜索,只得到jQuery.params
,這是相反的。任何建議請(內置JavaScript功能,jquery,underscore.js - 一切都好)?或者,我是否需要自己來實現它(不是一個大麻煩,只是試圖不重新發明輪子)?將查詢字符串反序列化爲JSON對象
8
A
回答
4
你有本·阿爾曼的jQuery BBQ
和jQuery.deparam
在裏面。它被描述爲The opposite of jQuery.param, pretty much.
http://benalman.com/code/projects/jquery-bbq/examples/deparam/
第一個例子是,你需要什麼。
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 Schema反序列化爲Json字符串或對象
- 2. 將JSON字符串反序列化爲自定義Java對象
- 3. 將JSON字符串反序列化爲VB.net對象
- 4. 無法將JSON字符串反序列化爲對象
- 5. C#使用Newtonsoft.Json將JSON字符串反序列化爲對象
- 6. 如何將json字符串反序列化爲域對象?
- 7. 如何將JSON字符串反序列化爲.NET對象?
- 8. 將json字符串反序列化爲使用Newtonsoft的對象
- 9. 將json字符串反序列化爲一個對象Silverlight
- 10. 將json字符串反序列化爲json.net對象
- 11. 反序列化json對象並將內部對象轉換爲字符串值?
- 12. 將JSON字符串反序列化爲字符串數組
- 13. 將JSON字符串反序列化爲字符串數組
- 14. 反序列化爲JavaScript的2D JSON字符串數組對象
- 15. json字符串反序列化爲自定義對象
- 16. 在將JSON字符串反序列化爲.NET對象時反射太慢
- 17. JSON.NET:將json字符串屬性序列化爲json對象
- 18. 使用lift-json將scala對象序列化爲JSon字符串
- 19. 將JSON對象轉換爲序列化的JSON字符串
- 20. 將對象序列化爲字符串
- 21. 將對象序列化爲字符串
- 22. 將JSON反序列化爲.net對象
- 23. 將JSON對象反序列化爲類
- 24. Json反序列化對象爲字典
- 25. 反序列化JSON選擇對象從JSON字符串
- 26. C#:asp.net 3.5:反序列化JSON - json字符串或對象?
- 27. 將JSON字符串反序列化爲.net對象嵌套(收集)字典
- 28. 爲什麼JSONDecoder直觀地將json字符串反序列化爲Python對象?
- 29. 將XML字符串反序列化爲對象VB.NET
- 30. 對JSON進行字符串化和解析(序列化對象結構)並反序列化,將JSON字符串轉換爲對象結構?
以及在這裏你去:http://stackoverflow.com/questions/901115/get -query-string-values-in-javascript。一點搜索總是有幫助的。 – ggozad 2012-07-19 09:27:59
@ggozad:搜索*到JSON/object *的轉換,而不僅僅是獲取值*。感謝您的鏈接!可悲的是,這個功能並不是jQuery中某處的標準。 – BreakPhreak 2012-07-19 09:30:06