Time does not change us. It just unfolds us.

Web/Front

[JavaScript]JSON 형식의 문자열과 Encode 함수

소젬 2021. 10. 25. 13:40

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

 

encodeURIComponent - 생활코딩

요약(Summary) URI로 데이터를 전달하기 위해서 문자열을 인코딩 문법(Syntax) encodeURIComponent(string) 인자(Parameters) 인자명 데이터형 필수/옵션 설명 string string 필수 인코딩할 문자열 반환값(Return) string,

opentutorials.org

 

'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