试图找到如何使{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字符串反序列化为域对象?
- 3. 如何将JSON字符串反序列化为.NET对象?
- 4. 无法将JSON字符串反序列化为对象
- 5. 将json字符串反序列化为一个对象Silverlight
- 6. 将json字符串反序列化为使用Newtonsoft的对象
- 7. C#使用Newtonsoft.Json将JSON字符串反序列化为对象
- 8. 将json字符串反序列化为json.net对象
- 9. 反序列化json对象并将内部对象转换为字符串值?
- 10. 反序列化为JavaScript的2D JSON字符串数组对象
- 11. json字符串反序列化为自定义对象
- 12. 在将JSON字符串反序列化为.NET对象时反射太慢
- 13. 将JSON对象转换为序列化的JSON字符串
- 14. 使用lift-json将scala对象序列化为JSon字符串
- 15. 将对象序列化为字符串
- 16. Json反序列化对象为字典
- 17. 将JSON对象反序列化为类
- 18. 将JSON反序列化为.net对象
- 19. C#:asp.net 3.5:反序列化JSON - json字符串或对象?
- 20. 反序列化JSON选择对象从JSON字符串
- 21. 将JSON字符串反序列化为.net对象嵌套(收集)字典
- 22. 为什么JSONDecoder直观地将json字符串反序列化为Python对象?
- 23. 将XML字符串反序列化为对象VB.NET
- 24. JSON使用json字符串将对象字符串化为值
- 25. 将大型Java对象序列化为Json字符串
- 26. 将序列化的JSON字符串解析为TS对象
- 27. 如何将restsharp请求对象序列化为json字符串
- 28. Cocoa:将json字符串反序列化为自定义对象(非NSDictionary,NSArray)
- 29. 如何将Json字符串反序列化为自定义DTO C#对象?
- 30. 将json字符串反序列化为使用newtonsoft的c#对象
以及在这里你去: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