반응형
JSON (Java Script Object Notation, 자바스크립트 객체 표기법)
: XML의 대안으로 좀 더 쉽게 데이터를 교환하고 저장하기 위해 만들어진 텍스트 기반의 데이터 교환 표준 (=자바 스크립트 언어에서 유래)
- 특징
1. JS의 리터럴 표현식을 활용해 간단한 포맷으로 데이터를 구분할 수 있는 문자열 포맷
2. 텍스트 기반이므로 사람이나 어떠한 프로그래밍 언어라도 데이터를 읽고 사용 가능
3. 네트워크를 사용하는 데이터 통신은 데이터를 byte형태로 전달한다.
4. 서버 <-> 클라이언트, 서버 <-> 어플리케이션에서 처리할 데이터를 주고 받을 때 쓰는 자료형식 중 대표적인 형식이 XML과 JSON이다.
5. 현재는 XML을 밀어내고 대표적인 데이터 전송 포맷으로 자리잡음
6. 구조화 된 데이터 표현을 위한 경량 데이터 교환 형식으로 key:value 포맷 형태를 사용한다
7. 항상 큰 따옴표로 묶어 사용하며 data값에서 역슬래시(\)와 큰 따옴표(")는 사용 불가하다
- 변환
자바 스크립트 객체 -> JSON
JSON -> 자바 스크립트 객체
- 확장자 : .json
- JSON 형식
// JavaScript
{name : “홍길동“, addr : “대전“, tel : “010-1234-5678”}
// JSON object
{“name” : “홍길동“, “addr” : “대전“, “tel” : “010-1234-5678”}
// 배열
[ “홍길동“, “개나리“, “진달래”, “이도령" ]
// JSON object 배열
[{“name” : “홍 “, “addr” : “대전“, “tel” : “010-1234-5678”},
{“name” : “홍길 “, “addr” : “대전“, “tel” : “010-1234-5678”},
{“name” : “홍길동“, “addr” : “대전“, “tel” : “010-1234-5678”} ]
- JSON 메소드
메소드 | 설 명 |
JSON.stringify(myObj) | 문자열로 변환 (서버로 전송 시) |
JSON.parse(string, function) | JavaScript 객체로 변환 |
JSON 예제
- 자바스크립트 객체 => JSON문자열 포맷 변환 (stringify)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button>JSON 변환 테스트</button>
<div></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$('button').on('click',function(){
// 리터럴 객체 생성
// key의 타입은 string이므로 따옴표 사용 유무 상관없음
let obj = {
json : "제이슨",
"특징" : "경량의 텍스트기반 데이터교환 표준으로 xml의 대안",
형태 : "JS 리터럴 표현식을 활용한 간단한 문자열 포맷(\"key\":\"value\" )",
메소드 : ["stringify()", "parse()"],
기능 : {stringify:"JS객체를 JSON화", parse : "JSON문자열 데이터를 JS객체화"}
};
// 자바스크립트 객체 => JSON문자열 포맷 변환
// JSON이라는 내장 객체를 제공하며 stringify()
let jsonStr = JSON.stringify(obj);
console.log( jsonStr, typeof jsonStr );
});
</script>
</body>
</html>
- JSON문자열 포맷 => 자바스크립트 객체 변환 (parse)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button>JSON 변환 테스트</button>
<div></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$('button').on('click',function(){
// 리터럴 객체 생성
// key의 타입은 string이므로 따옴표 사용 유무 상관없음
let obj = {
json : "제이슨",
"특징" : "경량의 텍스트기반 데이터교환 표준으로 xml의 대안",
형태 : "JS 리터럴 표현식을 활용한 간단한 문자열 포맷(\"key\":\"value\" )",
메소드 : ["stringify()", "parse()"],
기능 : {stringify:"JS객체를 JSON화", parse : "JSON문자열 데이터를 JS객체화"}
};
// 자바스크립트 객체 => JSON문자열 포맷 변환
// JSON이라는 내장 객체를 제공하며 stringify()
let jsonStr = JSON.stringify(obj);
console.log( jsonStr, typeof jsonStr );
// JSON문자열포맷 ==> 자바스크립트 객체 변환
// JSON.parse()
let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj, typeof jsonObj);
});
</script>
</body>
</html>
+ 접근 방법
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button>JSON 변환 테스트</button>
<div></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$('button').on('click',function(){
let obj = {
json : "제이슨",
"특징" : "경량의 텍스트기반 데이터교환 표준으로 xml의 대안",
형태 : "JS 리터럴 표현식을 활용한 간단한 문자열 포맷(\"key\":\"value\" )",
메소드 : ["stringify()", "parse()"],
기능 : {stringify:"JS객체를 JSON화", parse : "JSON문자열 데이터를 JS객체화"}
};
let jsonStr = JSON.stringify(obj);
let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj.json);
console.log(jsonObj['형태']);
console.log(jsonObj.메소드[0]);
console.log(jsonObj.기능.parse);
});
</script>
</body>
</html>
반응형
'jQuery' 카테고리의 다른 글
[jQuery] 21장 Ajax를 이용한 페이지 예제 (0) | 2024.02.28 |
---|---|
[jQuery] 20장 Ajax (0) | 2024.02.27 |
[jQuery] 18장 콜백 함수와 체이닝, 동기와 비동기 (1) | 2024.02.27 |
[jQuery] 17장 효과, 애니메이션 (0) | 2024.02.27 |
[jQuery] 16장 필터링 (0) | 2024.02.26 |