Object(객체)를 Json 문자열로 변환할 때 stringify()를 사용한다.
또한 데이터를 인코드하기 위해 btoa() 함수를 사용한다.
var val = btoa(encodeURIComponent(JSON.stringify(row)));
반대로 Json 문자열을 Object로 변환할 때는 parse()를 사용하며
디코드하기 위해 atob()를 사용한다.
var row = JSON.parse(decodeURIComponent(atob(val)));
encodeURIComponent 함수는 모든 문자를 인코딩한다.
URI로 데이터를 전달하기 위해서 문자열을 인코딩하는데 사용한다.
Encoding 할 때 한글을 포함한 경우에는 정상적으로 변환되지 않기 때문에 데이터를 감싸는 역할을 한다.
인자명 | 데이터형 | 필수/옵션 | 설명 |
string | string | 필수 | 인코딩할 문자열 |
개념이 와닿지 않아 이해를 도와준 생활코딩의 설명을 스크랩해왔다.
웹을 통해서 데이터를 전송할 때 특정 문자들은 특수한 기능으로 사용된다. 예를들어, http://a.com?name=egoing&job=programmer 에서 &job=programmer 중 '&'는 하나의 파라미터가 끝나고 다음 파라미터가 온다는 의미이다. 그런데 다음과 같이 job의 값에 &가 포함된다면 시스템은 job의 값을 제대로 인식할수 없게 된다. http://a.com?name=egoing&job=programmer&blogger 이런 문제를 회피하기 위해서 다음과 같이 치환해준다. http://a.com?name=egoing&job=programmer%26blogger 그럼 시스템에서는 %26을 &로 해석하고 의도대로 해석할 수 있게 된다. 이러한 처리를 이스케이핑(escaping)라고 부른다. |
참고
https://opentutorials.org/course/50/190
'Web > Front' 카테고리의 다른 글
[JavaScript]IP input mask (0) | 2021.10.28 |
---|---|
[Web]Custom Validator (0) | 2021.10.26 |
[Web]Freemarker문법 (0) | 2021.10.26 |
[Web]Feign Client (0) | 2021.10.22 |