JavaScript Object Notation의 약어로 데이터를 표현하는 데 사용되는 형식이다.
또한, 빠른 데이터 교환 및 웹 서비스 결과 도출을 지원하며 추가적인 코드 작업 없이도 손쉽게 파싱이 가능하기 때문에 가장 보편적인 데이터 교환 형식으로 사용되고 있다.
{
"Articles" : [
{
"id" : 10,
"name" : "데이터의 교환형식",
"theme" : "Basic CS",
}
{
"id" : 9,
"name" : "JVM이란",
"theme" : "JAVA",
}
]
}
전송받은 JSON 데이터가 적법한 형식의 데이터인지를 확인하기 위해 적법한 JSON 데이터의 형식을 기술한 문서
다음과 같은 검증과정을 거친다.
1. 데이터의 타입이 정확한가?검증 키워드(validation keywords)를 사용하여 데이터에 조건을 걸 수 있다.
검증 키워드는
type : 유효한 데이터의 타입을 명시
properties : 유효한 데이터 이름과 값의 쌍들을 명시
required : 명시한 배열의 모든 요소를 프로퍼티로 가지고 있어야만 유효
minLength : 문자열의 최소 길이
maxLength: 문자열의 최대 길이
등이 있으며, 더 많은 검증키워드를 알기 위해서는 JSON Schema validation keywords 를 참고하면 된다.
메타데이터 키워드를 사용하여 스키마의 기본 정보를 나타낼 수 있다. 필수는 아니지만 스키마에 대한 정보를 남겨 사용자들의 이해를 도울 수 있다.
title : 스키마 이름등이 있으며, 더 많은 키워드를 알기 위해서는 JSON Schema keywords를 참고하면 된다
사용 예시 :
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/product.schema.json",
"title": "Product",
"description": "A product in the catalog",
"type": "object"
}
Extensible Markup Language의 약자로 확장 가능한 마크업 언어를 나타내며, 데이터를 구조화하고 전송하는 데 사용된다.
<note>
<to>YeonJin</to>
<from>Yujin</from>
<heading>Reminder</heading>
<body>Don't forget me!</body>
</note>
문법
: XML은 시작 태그와 종료 태그로 이루어진 태그 기반의 문법을 사용한다.
<person>Yujin</person>과 같은 형식
JSON은 중괄호({})와 대괄호([])로 이루어진 키-값 쌍의 집합으로 데이터를 표현한다.
"name": "Yujin"과 같은 형식
가독성: XML은 태그를 사용하고 종료 태그가 필요하기 때문에 문서의 크기가 JSON보다 크다. 상대적으로 짧은 JSON이 더 간결하고 가독성이 높다.
확장성: XML은 사용자 정의 태그를 정의하여 데이터를 나타낼 수 있는 확장성을 제공하지만, JSON은 구조를 명시적으로 표현하지 않기 때문에 XML에 비해 확장성이 상대적으로 낮다.
지원 언어: XML은 많은 프로그래밍 언어에서 내장된 지원을 제공하며 XML 파서를 사용하여 XML 데이터를 처리할 수 있다. JSON은 JavaScript 객체 표기법을 기반으로 하며, 다양한 프로그래밍 언어에서 JSON 데이터를 쉽게 처리할 수 있다.
XML과 JSON은 데이터를 표현하고 전송하는 데 사용되는 텍스트 기반 형식이지만 문법, 가독성, 확장성, 지원 언어 등에서 차이가 있다. 사용 사례와 개발 환경에 따라 선택해서 사용해야한다.
객체나 데이터 구조를 다른 형식으로 변환하는 과정
객체를 저장하거나 전송하기 위해 사용되며, 주로 프로그래밍에서 객체의 상태를 영속적으로 보존하거나 네트워크를 통해 객체를 전송하는 데 활용된다.
✅ 직렬화
: 객체나 데이터 구조를 일련의 바이트로 변환하는 과정
✅ 역직렬화
: 직렬화된 바이트 스트림을 원래의 객체나 데이터 구조로 변환하는 과정
✅ JSON의 직렬화와 역직렬화
JSON은 일반적으로 직렬화와 역직렬화에 사용되는 데이터 형식 중 하나
객체나 데이터 구조를 JSON 형식으로 직렬화하면, JSON 문자열로 표현된 상태로 저장하거나 전송할 수 있다. 이렇게 직렬화된 JSON은 웹 API와 같은 다양한 응용 프로그램에서 데이터 교환을 위해 사용된다.
참조 :
https://www.itworld.co.kr/news/252478#csidxf29f3199397f965ae1b2fd0d6ee4847
https://www.oracle.com/kr/database/what-is-json/#json-defined
http://www.tcpschool.com/json/json_schema_schema