
가독성
JSON의 문법은 사람에게 친숙한 텍스트 형식을 사용합니다. 중괄호 {}는 객체를 나타내고, 대괄호 []는 배열을 나타내며, 키-값 쌍은 "key": "value" 형식으로 표현됩니다. 이러한 구조는 사람이 직관적으로 데이터를 이해하고 분석할 수 있게 도와줍니다.
예를 들어, 다음과 같은 JSON 데이터를 보면 이 데이터는 이름, 나이, 학생 여부, 수강 과목, 주소 등의 정보를 쉽게 파악할 수 있게 합니다.
{
"name": "John Doe",
"age": 30,
"isStudent": false,
"courses": ["Math", "Science"],
"address": {
"street": "123 Main St",
"city": "Anytown",
"country": "USA"
}
}
언어 독립성
JSON은 JavaScript에서 시작되었지만, 현재는 거의 모든 주요 프로그래밍 언어에서 JSON을 지원합니다. Python에서는 json 모듈을 사용하고, Java에서는 Jackson 라이브러리를 사용하며, C#에서는 Json.NET 등을 사용합니다.
이러한 언어 독립성 덕분에, 서로 다른 언어로 작성된 시스템 간의 데이터 교환이 용이합니다.
import json
#JSON 데이터 문자열
json_data = '{"name": "John Doe", "age": 30}'
#문자열을 파이썬 객체로 변환
data = json.loads(json_data)
print(data['name']) # 출력: John Doe
경량
JSON은 XML 등 다른 데이터 형식에 비해 상대적으로 간결합니다. 태그가 적고, 중복이 없으며, 불필요한 데이터를 포함하지 않기 때문에 데이터 전송 시 더 적은 대역폭을 사용합니다. 이는 웹 애플리케이션의 성능 최적화에 유리합니다.
아래의 XML 데이터는 동일한 정보를 포함하지만, JSON보다 훨씬 더 많은 문자를 사용합니다.
<person>
<name>John Doe</name>
<age>30</age>
<isStudent>false</isStudent>
<courses>
<course>Math</course>
<course>Science</course>
</courses>
<address>
<street>123 Main St</street>
<city>Anytown</city>
<country>USA</country>
</address>
</person>
구조화된 데이터 표현
JSON은 중첩된 구조를 통해 복잡한 데이터 구조를 표현할 수 있습니다. 객체 안에 또 다른 객체나 배열을 포함할 수 있으며, 이를 통해 다차원 데이터를 효과적으로 표현합니다.
아래의 예시에서는 courses 배열 안에 각 과목의 이름과 성적을 포함한 객체가 들어있어, 구조화된 데이터를 쉽게 표현할 수 있습니다.
{
"name": "John Doe",
"courses": [
{
"name": "Math",
"grade": "A"
},
{
"name": "Science",
"grade": "B"
}
]
}
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data);
});
GET /users/1 HTTP/1.1
Host: api.example.com
Accept: application/json