프로그래밍 언어/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
반응형