공식 홈페이지(https://www.json.org/json-ko.html) 내용은 다음과 같이 JSON을 설명하고 있다.
JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999의 일부에 토대를 두고 있다. JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외 다수 - 의 프로그래머들에게 친숙한 관습을 사용하는 텍스트 형식이다. 이러한 속성들이 JSON을 이상적인 DATA-교환 언어로 만들고 있다.
JSON(JavaScript Object Notation) 이란?
- JSON은 간단한 데이터 교환 형식으로 데이터 저장 및 교환을 위한 구문이다
- javascript 객체를 나타내는 표기법으로 텍스트 형식이다.
- JSON은 텍스트이기 때문에 이해하기 쉽다.
- JSON은 텍스트이기 때문에 모든 언어에서 사용이 가능하다.
- 단순한 문자열이기 때문에 overhead가 없다
- 최신 브라우져가 대부분 JSON파사를 내장하므로 사용하기 편하다.
- JSON 파사가 없을 경우 자바스크립트 문법의 eval 명령으로 사용이 가능하다.
왜 JSON(JavaScript Object Notation)을 사용하는가?
- JSON은 텍스트이기 때문에 서버와 주고 받을 수 있으며 모든 프로그래밍 언어에서 데이터 형식으로 사용된다.
- XML(Extensible Markup Language)의 대안으로 XML보다 사용하기 쉽다.
- JSON을 사용하면 JavaScript객체를 텍스트로 저장이 가능하다.
- JavaScript에는 JSON형식이 문자열을 객체로 변환하는 내장 함수 JSON.parse()가 있으므로 바로 JavaScript 객체로 사용 가능하다.
- JavaScript에는 객체를 JSON문자열로 변환하는 내장함수 JSON.stringify()가 존재 하므로 JavaScript객체를 문자열로 서버에 전달 가능하다.
- 브라우저와 서버 간의 데이터 교환할 때 데이터는 텍스트일 뿐이다.
- 서버에서 보내온 데이터를 바로 JavaScript 객체로 변환하여 처리가 가능하다.
- 복잡한 파싱 및 번역 작업없이 데이터를 바로 JavaScript 객체로 처리가 가능하다.
JSON(JavaScript Object Notation) 문법
JSON문법은 JavaScript의 subset으로 JavaScript Object Notation syntax에서 파생되었다.
Object(객체)
Object는 중괄호({,})를 사용하여 시작과 종료를 나타내며 key(name)/value쌍으로 이루어져 있다. key와 value는 Colon(:)으로 구분하고 Comma(,)를 이용하여 여러 값을 나타낼 수 있다.
예) {“name":"한사람”, “age":33, "gender":true}
Array(배열)
Array는 대괄호([,])를 사용하여 시작과 종료를 나타내며 Comma(,)를 이용하여 여러 값을 나타낼 수 있다.
예) {“names" : ["한사람”,“두사람”,“세사람”,“네사람”] }
[1,2,3,4,5,6,7,8,9,10]

Value(값)
Value(값)은 string, number ,true ,false , null, object ,array 등이 올수 있다. 이러한 구조들을 포함한다.

String(문자열)
string은 큰 따옴표 안에 둘러싸인 zero이상 Unicode 문자들의 조합이며, 쌍 따옴표 안에 감싸지며, backslash escape가 적용된다. 하나의 문자(character)도 하나의 문자열(character string)로서 표현된다.

WhiteSpace(공백)
토근들의 어떤 쌍 사이에 공백을 삽입할수 있다. 드물게 encode된 세부 항목을 제외하면, 이렇게 설명된 JSON의 형식은 완벽하게 그 언어를 설명한다.
Number(숫자)
Number는 10진수 형식의 정수와 실수의 구분 없이 사용된다. 지수 형식으로도 표현이 가능하다.

자세한 사용법은 실습을 통하여 알아보자.
간단한 JavaScript 예제
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JSON(JavaScript Object Notation)연습</title>
<script>
let person1 = {name:"한사람", age:33, gender:true};
document.write(typeof(person1) + " : " + person1 + "<br>");
document.write("이름 : " + person1.name + "<br>");
document.write("나이 : " + person1.age + "<br>");
document.write("내년 나이 : " + (person1.age + 1) + "<br>");
document.write("성별 : " + (person1.gender ? "남자":"여자") + "<br><hr>");
let jsonString = JSON.stringify(person1);
document.write(typeof(jsonString) + " : " + jsonString + "<br><hr>");
let person2 = JSON.parse(jsonString);
person2.age=18;
person2.gender = false;
document.write(typeof(person2) + " : " + person2 + "<br>");
document.write("이름 : " + person2.name + "<br>");
document.write("나이 : " + person2.age + "<br>");
document.write("내년 나이 : " + (person2.age + 1) + "<br>");
document.write("성별 : " + (person2.gender ? "남자":"여자") + "<br><hr>");
let queryString = Object.entries(person2).map(e => e.join('=')).join('&');
document.write(typeof(queryString) + " : " + queryString + "<br><hr>");
</script>
</head>
<body>
</body>
</html>
실행 결과이다.
자세한 사용법은 Java를 이용해서 사용하도록 하겠다. 여기서는 JSON이 무엇인지를 알아 두도록 하자.
'Java' 카테고리의 다른 글
jackson XML 라이브러리 사용하기 (0) | 2023.04.28 |
---|---|
Jackson Json 라이브러리 사용하기 (0) | 2023.04.28 |
Gson 라이브러리 사용하기 (0) | 2023.04.28 |