프로그래밍 언어/JAVA

자바 스크립트 객체의 쿼리 문자열 인코딩

Rateye 2021. 10. 21. 11:03
728x90
반응형
질문 : 자바 스크립트 객체의 쿼리 문자열 인코딩

GET 요청을 통해 전달할 수 string 로 인코딩하는 빠르고 간단한 방법을 알고 있습니까?

jQuery 없음, 다른 프레임 워크 없음-일반 Javascript :)

답변

이렇게?

serialize = function(obj) {
var str = [];
for (var p in obj)
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
console.log(serialize({
foo: "hi there",
bar: "100%"
}));
// foo=hi%20there&bar=100%25

편집 : 이것은 또한 재귀 객체를 변환합니다 (쿼리 문자열에 대해 php "array"표기법 사용).

serialize = function(obj, prefix) {
var str = [],
p;
for (p in obj) {
if (obj.hasOwnProperty(p)) {
var k = prefix ? prefix + "[" + p + "]" : p,
v = obj[p];
str.push((v !== null && typeof v === "object") ?
serialize(v, k) :
encodeURIComponent(k) + "=" + encodeURIComponent(v));
}
}
return str.join("&");
}
console.log(serialize({
foo: "hi there",
bar: {
blah: 123,
quux: [1, 2, 3]
}
}));
// foo=hi%20there&bar%5Bblah%5D=123&bar%5Bquux%5D%5B0%5D=1&bar%5Bquux%5D%5B1%5D=2&bar%5Bquux%5D%5B2%5D=3
출처 : https://stackoverflow.com/questions/1714786/query-string-encoding-of-a-javascript-object
728x90
반응형