Cố gắng tìm cách tạo {foo:"bar"}
từ ?...&foo=bar&...
nhưng googled và chỉ nhận được jQuery.params
ngược lại. Bất kỳ đề xuất nào vui lòng (được xây dựng trong hàm javascript, jquery, underscore.js - tất cả đều đi)? Hoặc, tôi có cần phải thực hiện nó một mình (không phải là một rắc rối lớn, chỉ cần cố gắng không để phát minh lại bánh xe)?Chuỗi truy vấn Deserialize thành đối tượng JSON
Trả lời
Bạn có jQuery BBQ
của Ben Alman và jQuery.deparam
trong đó. Nó được mô tả như The opposite of jQuery.param, pretty much.
http://benalman.com/code/projects/jquery-bbq/examples/deparam/
dụ đầu tiên là chính xác những gì bạn cần.
Tôi đăng bài ở đây chức năng của tôi chỉ trong trường hợp khác sẽ xem xét và sẽ muốn làm cho nó thẳng về phía trước không cần JS jquery bản địa. Bởi vì tôi đang tìm kiếm điều tương tự và cuối cùng làm cho chức năng này sau khi xem những người khác câu trả lời:
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"}
Thực ra câu trả lời ở trên bởi @talsibony không đưa vào mảng chuỗi truy vấn tài khoản (chẳng hạn như test=1&test=2&test=3&check=wow&such=doge
). Đây là triển khai thực hiện của tôi:
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));
};
cho các chuỗi truy vấn đơn giản và bằng phẳng, một cái gì đó như thế này sẽ làm các trick
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. Deserialize chuỗi JSON để C# đối tượng
- 2. Đối tượng JSON thành chuỗi
- 3. Phân tích đối tượng json thành chuỗi
- 4. deserialize JSON để đối tượng JAVASCRIPT
- 5. JSON.NET: Serialize thuộc tính chuỗi json thành đối tượng json
- 6. Chuyển đổi chuỗi thành đối tượng JSON
- 7. Net simplejson: Deserialize JSON để đối tượng năng động
- 8. Đối tượng JS thành chuỗi JSON?
- 9. truy vấn javascript đối tượng
- 10. jquery làm thế nào để deserialize đối tượng json
- 11. Jackson Deserialize Variable như Json Chuỗi
- 12. Deserializing JSON vào đối tượng
- 13. Deserialize JSON với C#
- 14. chuyển đổi chuỗi json thành đối tượng python
- 15. Chuyển đổi chuỗi Json thành Danh sách các đối tượng
- 16. Deserialize JSON thành đối tượng ẩn danh bằng cách sử dụng JSON.NET
- 17. Deserialize JSON to Java enum
- 18. Đối tượng mã hóa thành JSON
- 19. Đối tượng Newtonsoft → Nhận chuỗi JSON
- 20. VB.net JSON Deserialize
- 21. Deserialize nhiều đối tượng Java
- 22. Cách chuẩn hóa để tuần tự hóa JSON thành chuỗi truy vấn?
- 23. Truy cập jQuery đối tượng JSON
- 24. Chuỗi JSON tới đối tượng JS
- 25. Delphi: Truy cập JSON đối tượng trong một mảng JSON
- 26. Phân tích chuỗi JSON thành .NET Object
- 27. jquery json thành chuỗi?
- 28. Serialize object thành chuỗi truy vấn trong JavaScript/jQuery
- 29. Chuyển đổi JSON tham số truy vấn các đối tượng với JAX-RS
- 30. Đối tượng chuỗi thành Boolean
tốt ở đây bạn đi: http://stackoverflow.com/questions/901115/get -query-string-values-in-javascript. Một tìm kiếm nhỏ luôn giúp ích. – ggozad
@ggozad: đã tìm kiếm * chuyển đổi thành JSON/đối tượng *, không chỉ * nhận các giá trị *. Cảm ơn các liên kết! Thật đáng buồn chức năng này không phải là tiêu chuẩn ở đâu đó trong jQuery hay như vậy. – BreakPhreak