1. https://ko.javascript.info/json
JSON은 자바스크립트 객체 표기법이라는 포맷이다. 통신을 통해서 객체 자료형을 전송해야 할 때 객체 상태로 전송을 할 수 없어서 원시 자료형인 문자열로 변경을 해야 한다. 이 과정에서 주로 사용되는 포맷 중 하나이다.
JSON.stringify 메서드와 JSON.parse 메서드로 인코딩 하고 디코딩한다. stringify 메서드로 인코딩이 가능한 자료형은
객체, 배열(역시 컬렉션), 문자와 숫자, 불린 값, null이 가능하고, 함수, 심볼, undefined 들은 인코딩이 불가능하다.
또 순환 참조가 있는 부분 역시 인코딩이 불가능하다. stringify 메서드는 자동으로 인코딩할 자료형의 toJSON() 메서드를 호출해서 변경을 수행하고, 이 역시 개인이 커스텀 가능하다. stringify 메서드를 통해서 변경된 문자열을 JSON으로 인코딩 된(JSON-encoded), 직렬화 처리된(serialized), 문자열로 변환된(stringified), 결집된(marshalled) 객체라고 부른다.
# 사용법
- JSON.stringify(value, [replacer]?, space?) – 객체를 JSON으로 바꿔줍니다. 대상 객체만 쓰거나 replacer는 프로퍼티 배열이나, 맵핑 함수 또는 null, space는 인코딩된 JSON의 공백 문자를 통한 스타일링이 가능하다.
- JSON.parse(string, [reviver]?) – JSON을 객체로 바꿔줍니다. reviver를 통해서 (key, value) => return result 형식으로 디코딩 과정을 커스텀 가능하다.
# 결론
- JSON은 독자적인 표준을 가진 데이터 형식으로, 대부분의 언어엔 JSON을 쉽게 다룰 수 있게 해주는 라이브러리가 있다.
- JSON.stringify를 사용하면 원하는 값을 JSON으로 직렬화 할 수 있고, JSON.parse를 사용하면 JSON을 본래 값으로 역 직렬화 할 수 있다.
- 해당 과정을 직접 컨트롤 가능하다.
- JSON.stringify는 객체에 toJSON 메서드가 있으면 이를 자동으로 호출해서 처리한다.
반응형
'개발 > TTL' 카테고리의 다른 글
[알고리즘] DFS (0) | 2021.09.08 |
---|---|
[클로저][JS]스토어 구현 (0) | 2021.08.14 |
[JS][자바스크립트] N진수변환 (0) | 2021.07.23 |
[JS][자바스크립트]워크맵과 워크셋 (0) | 2021.07.05 |
[JS][자바스크립트]맵과 셋 (0) | 2021.07.01 |