<그냥하자> JavaScript (26) JSON

.·2024년 7월 31일
post-thumbnail

출처 : 인프런 얄팍한 코딩사전

I. JSON JavaScript Object Notation

복잡한 구조를 가질 수 있는 데이터를 한 줄의 문자열로 표현
서버와 클라이언트 등 데이터들을 주고받는 주체들 사이에 널리 사용

Javascript의 객체 표기법이며, XML 보다 낫기 때문에 대체 되고 있음. 하지만 각각의 장단점이 있음. JSON은 문법 오류에 취약하여 콤마하나 등 빼먹게 되면 문서 전체가 해석 불가 상태가 되고 주석을 달수 없다.

JSON은 표준내장 객체중 하나이다.

II. JSON 객체의 정적 메서드

  1. stringify - 객체를 문자열로 직렬화 serialize


    데이터 형태별 직렬화 결과
    모든 데이터가 직렬화 되는건 아니다.

⭐️ 값이 함수인 프로퍼티는 직렬화되지 않음

2번째 인자: replacer 함수
직렬화될 방식을 지정

3번째 인자: 인덴트

객체의 toJSON 프로퍼티

  1. parse - 역직렬화

2번째 인자: receiver 함수

III. 깊은 복사 deep copy

JSON을 사용한 깊은 복사

함수, Date, Symbol, BigInt 프로퍼티는 JSON 방식으로는 불가 또는 제한적

structuredClone

JSON 방식보다 빠르고 효율적인 깊은 복사
Date와 BigInt 제대로 복사 - 함수와 Symbol은 여전히 불가

profile
해야 되는 일이 하고 싶은 일로

0개의 댓글