본문 바로가기
개발/TTL

[JS][자바스크립트]JSON

by ISA(류) 2021. 7. 27.

1. https://ko.javascript.info/json

 

JSON과 메서드

 

ko.javascript.info

 

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