Javascript 객체 문법으로 구조화된 데이터교환형식, python, javascript, java 등 여러 언어에서 데이터 교환형식으로 쓰이며 객체문법 말고도 단순 배열, 문자열도 표현 가능하다.
키(key)와 값(value)로 구성된다.
이미 존재하는 키를 중복선언하면 나중에 선언한 해당 키에 대응한 값이 덮어쓰이게 된다.
{
"name" : "a",
"name" : "b",
"name" : "b"
}
출력 name : b
const fs = require('fs')
const path = require('path')
const example = fs.readFileSync(path.join(__dirname, "example.json"))
console.log(example)
console.log(JSON.parse(example))
JSON.parse = Json 파일을 JS OBJECT로 변환해주는 것
데이터는 추상적인 아이디어에서부터 시작해 구체적인 측정에 이르기 까지 다양한 의미로 쓰인다. 실험, 조사, 관찰 등으로부터 얻은 사실이나 자료 등을 의미한다.
객체, 해시테이블, 딕셔너리 등으로 변환되어 쓰인다.
프로그래밍 언어들과 프레임워크 등에 독립적이다.
따라서 서로 다른 시스템간에 데이터를 교환하기에 좋다.
주로 API의 반환 형태, 시스템을 구성하는 설정 파일에 활용된다.
javascript object와 유사하지만, undefined, 메서드 등을 포함할 수 없다, 아래 종류를 사용할 수 있다.
직렬화 : 외부의 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터를 반환하는 기술이며 역직렬화는 반대를 의미한다.
역직렬화 : 외부 시스템에서도 사용할 수 있도록 만들어주는 것
JSON.parse() : 문자열 → 객체 (역직렬화)
JSON.stringify() : 객체 → 문자열 (직렬화)