JSON이란?
JSON은 뭘까?
웹개발을 하다 보면 JSON이라는 것에 대해 듣게 될 텐데 이게 도대체 뭘까??
간단하게 말하면 데이터 형식이다
데이터 교환 형식의 대표적인 데이터 형식은 JSON과 XML이 있다
JSON과 XML 이 둘을 비교하며 어떤 건지 또 어떤 것을 사용해야 할지 알아보는 시간이 됐으면 좋겠다.
JSON과 XML이란?
JSON과 XML은 둘 다 구조화된 데이터를 표현하고 전송하기 위한 데이터 형식이다
JSON(JavaScriopt Object Notation)
특징
- 경량의 데이터 교환 형식
- 텍스트기반의 구조화된 데이터를 표현
- 가독성이 좋다
- 다양한 프로그래밍 언어와 호환된다
XML(eXtensible Markup language)
특징
- 태그형식으로 데이터를 표현
- 앞뒤에 태그를 붙여야 하기에 데이터 크기가 크다
- 트리구조
- 요소(element), 속성(attrivute), 텍스트(text) , 주석(comment) 등으로 구성
- 가독성이 낮다.
JSON과 XML의 데이터 형식 비교
JSON 예시
- 중괄호로 묶인 키(key) - 값(value) 쌍의 집합
- 키와 값은 콜론 : 으로 구분되며 다른 쌍과 콤마, 로 구분
- JSON의 value에는 문자열, 숫자, 불리언, 객체, 배열, 널 등 다양한 값이 올 수 있다.
데이터형식
{
"uid":"aaa1",
"title":"제목입니다",
"content":"내용입니다."
}
문자열배열
- 대갈호로 감싼다
[
"감자",
"고구마",
"옥수수"
]
객체배열
[{
"uid":"aaa1",
"title":"제목입니다1",
"content":"내용입니다1"
},
{
"uid":"aaa2",
"title":"제목입니다2",
"content":"내용입니다2"
}]
xml예시
데이터 형식
<!-- xml 데이터 예시--> (<!-- --> : comment)
<board> (<board> : element)
<uid>aaa1</uid> (aaa1 : text)
<title>제목</title>
<content>xml 테스트 내용</content>
<board>
다른 형식 : attribute를 사용
<!-- 이런식으로도 xml 작성이 가능 -->
<school>
<student name="학생1" age="12"/> (name, age == attribute)
</school>
마무리
최근에는 XML 형식보다는 JSON이 더 많이 사용되고 있다.
자바에서 JSON데이터를 다루는 방법이 여러가지가 있지만
일반적으로 Gson과 Jackson라이브러리를 이용해서 JSON을 쉽게 다룰 수 있다.
참고 : json.org에 접속하면 JSON에 대한정보를 더 알 수 있다.
최신버전의 스프링부트에서는 xml을 사용하지 않으려고 하고 있다는 것 등을 참고하면 좋을 것 같다.