JavsScript Object Notation의 줄임말로, 해석하면 '자바 스크립트 객체 표기법' 이다.
💻 개발자들은 개발을 할 때, 어떤 언어에서든지 데이터 구조와 실제 데이터를 다른 언어 및 플랫폼에서 해석 가능한 형식으로 전송할 수 있어야 하는데, JSON은 이를 가능하게 해주는 ’데이터 교환 포맷’이다.
💡 결론부터 말해보자면, JSON은 데이터를 표시하는 표현 방식이라는 것💡
클라이언트와 서버 간의 교류에서 일반적으로 많이 사용된다.
JS 객체 표기법과 아주 유사하다.
문자열 형태로 존재하기 때문에 네트워크를 통해 전송할 때 아주 유용하다.
JSON은 순수히 데이터 포맷이기 때문에 메서드는 담을 수 없으며 프로퍼티만 담을 수 있다.
JSON은 문자열과 프로퍼티의 이름 작성시 큰 따옴표만을 사용해야 하고 작은 따옴표는 사용불가하다.
JSON은 JSON내부에 포함할 수 있는 모든 형태의 데이터 타입을 취할 수 있다. 즉, 배열이나 오브젝트 외에도 단일 문자열이나 숫자 또한 유효한 JSON 오브젝트가 된다.
자바스크립트에서 오브젝트 프로퍼티가 따옴표로 묶이지 않을 수도 있는 것과는 달리, JSON에서는 따옴표로 묶인 문자열만이 프로퍼티로 사용될 수 있다.
사용자 생성 데이터로부터 JSON 객체를 생성할 떼
시스템 간에 데이터를 전송할 때
애플리케이션용 데이터를 구성할 때
복잡한 데이터 모델을 간소화할 때
(문자열)
{"name":"jini"}
(숫자)
{
"num1":1,
"num2":2,
"num3":3
}
(boolean)
{"isOnclick":false}
(Null)
{"name":null}
(객체)
{
"Person": {"name":"jini", "age":"22", "city":"seoul"}
}
(배열)
{
"Person" :[
{
"name" : "jini",
"age" : 22,
},
{
"name" : "yoon",
"age" : 18
}]
}
EXtensible Markup Language의 약자로, HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)이다.
<cat>
<name>뚜뚜</name>
<age>1</age>
</cat>
{
"name": "뚜뚜",
"age": 1
}
JSON은 전송받은 데이터의 무결성을 사용자가 직접 검증해야 한다. 따라서 데이터의 검증이 필요한 곳에서는 스키마를 사용하여 데이터의 무결성을 검증할 수 있는 XML이 아직도 많이 사용되고 있다.