Javascript 객체 문법으로 구조화된 데이터 교환형식이다.
{
"name" : "euni",
"name" : "zzang",
"name" : "king"
}
// name이란 key가 중복되었을 때, 처음 선언된 euni가 아닌 zzang이 출력된다.
{
"list" : [ // 대괄호를 묶어 여러개의 객체를 생성
{
"name" : "홍길동1",
"song" : "아버지를 아버지라 부르지 못하고"
},
{
"name" : "홍길동2",
"song" : "어머니를 어머니라 부르지 못함"
}
]
}
javascript object와 유사하지만 undefined, 메서드 등을 포함할 수 없다.
외부시스템에서 사용할 수 있도록 객체를 바이트 형태로(String, 문자열) 데이터를 변환하는 기술이다.
내부시스템안에서 사용할 수 있도록 바이트 형태를 객체로 변환한 것.
프로젝트를 진행하면서 나는 postman으로 json타입 데이터를 교환한 경험이 있다.
사실 부트캠프에서 json
타입을 처음부터 배워왔기 때문에 아무 의심없이 사용한 것이었다. '데이터를 교환하는 방식은 XML도 있는데 왜 우리프로젝트는 json
을 사용했을까?' 에 대한 대답을 비로소 할 수 있게되어 개인적으로 기쁘다.
항목 | JSON | XML |
---|---|---|
데이터 형식 | 자바스크립트 객체와 배열을 이용하여 데이터 표현 | 태그를 이용하여 데이터 표현 |
가독성 | 간결한 구조와 키-값 쌍으로 가독성 우수 | 여는 태그와 닫는 태그로 가독성 감소 (중첩 시 복잡) |
용량 | 작은 크기로 네트워크 전송 시 용량 절약 | 태그와 속성으로 인해 크기가 커질 수 있음 |
// JSON 예시
{
"name": "John",
"age": 30,
"city": "New York"
}
// XML 예시
<person>
<name>John</name>
<age>20</age>
<city>New York</city>
</person>