JSON 구조가 재귀 함수를 사용할 수 있는 Tree 구조임을 이해해야 합니다.
JSON이란 JavaScript Object Notation의 줄임말입니다.
데이터 교환을 위해 만들어진 객체 형태의 포맷입니다. 네트워크를 통해 어떤 객체 내용을 다른 프로그램에게 전송한다고 보면 됩니다.
전송 가능한 조건 (transferable condition)
객체는 타입 변환을 이용해 String으로 변환할 경우 객체 내용을 포함하지 않습니다.
이 문제를 해결하는 방법은 객체를 JSON의 형태로 변환하거나 JSON을 객체의 형태로 변환하는 방법입니다. 이를 위한 메소드가
입니다.
stringify하는 과정을 직렬화(serialize)한다고 합니다.
JSON으로 변환된 객체의 타입은 문자열입니다. 발신자는 객체를 직렬화한 문자열을 누군가에게 객체의 내용을 보낼 수 있습니다.
반대로 수신자는 문자열 메시지를 다시 객체의 형태로 만들어야 합니다. JSON.stringify와 정반대의 작업을 수행하는 JSON.parse를 사용해야 합니다.
직렬화된 JSON에 메소드 JSON.parse를 적용하면 다시 객체 형태로 변환할 수 있습니다.
이처럼 JSON은 서로 다른 프로그램 사이에서 데이터를 교환하기 위한 포맷입니다. JSON 포맷은 자바스크립트를 포함한 많은 언어에서 범용적으로 사용됩니다.
JSON을 얼핏 보기에 JavaScript의 객체와 별반 다를 바가 없어 보이지만, 자바스크립트의 객체와는 다릅니다.
JSON의 키에는 반드시 큰 따옴표를 붙여야 하고 문자열 값도 반드시 큰 따옴표로 감싸야합니다. 또한 키값 사이에는 공백이 있을 수 없습니다.