JSON
- Javascript Object Notation
- ECMAScript 3rd 1999에 발표된 Javascript객체에 큰 영감을 받아서 만들어진 데이터 포멧
- 모바일이나 파일 object를 파일 시스템에 저장할 때도 JSON을 이용
- 데이터를 주고받을 때 쓸수있는 가장 간단한 파일 포멧
- 텍스트를 기반으로 한 가벼운 파일 포멧
- 가독성 좋음
- key와 value로 이루어져 있음 - Object { key:value}
- 데이터와 서버를 주고 받을 때 serializtion(직렬화)해서 전송
- 프로그래밍 언어나 플랫폼에 상관없이 사용가능 하다!
💡 JSON 공부포인트
- object를 어떻게 serialize(직렬화)해서 json으로 변환할지
- 직렬화된 json을 deserialize해서 object로 변환할건지
1. Object to JSON

JSON API 문서를 읽어보면 parse와 stringify 라는 2가지 함수가 존재한다.
오버로딩
이란?
동일한 stringify가 2개가 있는 것을 확인할수 있는데 함수이름은 같지만 매개변수가 달라 다른역할을 하는것이다.
어떤 타입의 Object를 받아와서 바로 string으로 변환해준다.
string으로 만들때 조금 더 세밀하게 통제하고 싶다면 replacer라는 콜백함수를 전달해서 쓸수있다.

2. JSON to Object
JSON.parse는 string을 받아서 object로 변환한다.
첫 번째 매개변수는 Object를 받고 두 번째 매개변수는 reviver라는 콜백함수를 받는다.
이 콜백함수는 결과를 변형시키는데 더 세밀하게 조정이 가능하다.

3 . 유용한 사이트
- JSON Diff
- 서버에게 요청했을 때 첫번째로 받아온 데이터와 두번째로 받아온 데이터가 뭐가 다른지 모를때 사용
- 문제를 디버깅할때 유용하게 사용
- JSON Beautifier
- 서버에서 받아온 JSON 포맷이 망가졌을때 정리하기 위해 사용
- JSON Parser
- json타입을 object형태로 변환한 것을 확인하고 싶을 때 사용
- JSON Validator
참고 : 드림코딩_엘리 자바스크립트 JSON 개념정리