JSON(JavaScript Object Notation)은 의미있는 특정 데이터를 열거하여 표현하기 위해 속성(‘키’라고도 함)과 값으로 이루어진 데이터 형식입니다. 웹 서비스에서 요청/응답 데이터를 전송할 때 사용하거나 데이터베이스 자료형, 특정 프로그램에 대한 구조 파일 등에 활용됩니다.
{ "Name": "lee", "Age": 30, "Gender": "man", "Country": "South Korea", "SNS": { "Blog": "https://jootc.com", "GitHub": "https://github.com/jooy2" } }
JSON은 주로 자바스크립트에서 많이 활용되지만 꼭 자바스크립트여야만 JSON을 사용할 수 있는 것은 아니며 최근에는 여러 언어에서도 JSON 데이터 형식이 사용되기도 합니다. 자바스크립트 문법에서 객체(Object) 데이터를 표현하는 방법과 거의 유사하기도 하기 때문에 자바스크립트에서 객체를 정의해본 적이 있다면 JSON 객체도 쉽게 사용할 수 있을 것입니다.
JSON 데이터 형식 정의
JSON 형식을 사용하기 위해서는 몇가지 규칙을 따라야 합니다.
- 속성(Key)은 문자열을 사용합니다. 문자열의 경우
"
기호로 감싸야 합니다. (일부 자바스크립트 문법에서는 기호로 감싸지 않아도 동작하는 경우도 있음) - 값(Value)은 문자열이나 숫자, 배열이나 객체 등의 다양한 타입을 사용할 수 있습니다.
- 속성과 값은 콜론(
:
) 기호로 구분하며 각 데이터 간에는 콤마(,
)를 사용해야 합니다. (보통 마지막에는 콤마를 사용하지 않지만 프로젝트에 따라 다를 수 있습니다.) - JSON 객체의 시작과 끝은 배열(
[
와]
) 또는 객체({
와}
) 구분 기호를 최상위 단계에 하나의 쌍으로 구성되어야 합니다.
JSON 형식을 파일로 작성하는 경우 보통.json
확장자를 사용합니다. 자바스크립트를 사용하는 경우 변수에 JSON과 유사한 데이터를 변수에 할당할 수도 있습니다.
const userObj = { "Name": "lee", "Age": 30, "Gender": "man", "Country": "South Korea", "SNS": { "Blog": "https://jootc.com", "GitHub": "https://github.com/jooy2" } };
이렇게 특정 변수에 JSON 객체를 할당했다면 자바스크립트에서는 아래와 같이 원하는 값에 접근할 수 있습니다.
console.log(userObj.SNS.Blog); // 'https://jootc.com' console.log(userObj['SNS']['Blog]); // 'https://jootc.com' console.log(userObj.Name); // 'lee' console.log(userObj['Name']); // 'lee'