문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
wiki:javascript:javascript_note:json_intro [2022/03/14 18:39] 127.0.0.1 바깥 편집 |
wiki:javascript:javascript_note:json_intro [2023/01/13 18:44] (현재) |
||
---|---|---|---|
줄 4: | 줄 4: | ||
* author | * author | ||
* email : shlim@repia.com | * email : shlim@repia.com | ||
- | * lastupdate | + | * lastupdate |
</ | </ | ||
<WRAP clear></ | <WRAP clear></ | ||
줄 11: | 줄 11: | ||
[[https:// | [[https:// | ||
- | JSON: JavaScript Object Notation.(자바스크립트 객체 표기법) | + | JSON은 JavaScript Object Notation(자바스크립트 객체 표기법)을 의미합니다. |
- | JSON은 데이터를 저장, | + | JSON은 데이터를 저장, |
- | JSON은 자바스크립트 객체 표기법으로 작성된 텍스트입니다. | + | JSON은 자체 |
- | =====Exchanging Data===== | + | ===== JSON Example |
- | 브라우저와 서버 간에 데이터를 교환할 때, 텍스트만이 데이터가 될 수 있습니다.\\ | + | 아래의 예제는 |
- | \\ | + | |
- | %%JSON%%은 텍스트이며, | + | |
- | \\ | + | |
- | 서버에서 받은 모든 %%JSON%%을 %%JavaScript%% 객체로 변환할 수도 있습니다.\\ | + | |
- | \\ | + | |
- | 이렇게 하면, 복잡한 구문 분석(parsing) 및 번역 없이 %%JavaScript%% 객체로서의 데이터로 작업할 수 있습니다.\\ | + | |
- | + | ||
- | =====Sending Data===== | + | |
- | %%JavaScript%% 객체에 데이터를 저장할 경우, 객체를 %%JSON%%으로 변환하여 서버로 보낼 수 있습니다.\\ | + | |
- | + | ||
- | ====Example==== | + | |
<code javascript> | <code javascript> | ||
- | < | + | '{"name":" |
- | + | ||
- | < | + | |
- | <!-- | + | |
- | demo_json.php: | + | |
- | + | ||
- | John from New York is 31 | + | |
- | | + | |
- | < | + | |
- | var myObj = { name: " | + | |
- | var myJSON = JSON.stringify(myObj); | + | |
- | window.location = " | + | |
- | </ | + | |
- | + | ||
- | </ | + | |
</ | </ | ||
+ | 3개의 속성을 가진 객체를 정의합니다.\\ | ||
+ | * name | ||
+ | * age | ||
+ | * car | ||
- | =====Receiving Data===== | + | 각각의 속성은 값(value)을 가집니다.\\ |
- | JSON 포맷으로 | + | JavaScript 프로그램으로 |
- | ====Example==== | ||
<code javascript> | <code javascript> | ||
- | <body> | + | let personName = obj.name; |
+ | let personAge = obj.age; | ||
+ | </code> | ||
- | < | + | ===== What is JSON? ===== |
+ | * JSON은 | ||
+ | * JSON은 경량의 데이터 교환 형식입니다. | ||
+ | * JSON은 자바스크립트 객체 표기법으로 쓰인 평문입니다. | ||
+ | * JSON은 컴퓨터 간 데이터를 보내기 위해 사용됩니다. | ||
+ | * JSON은 언어 독립적입니다. | ||
- | | + | |
+ | JSON을 읽고 생성하는 코드는 많은 프로그래밍 언어에 존재합니다. | ||
- | < | + | JSON 포맷은 원래 Douglas Crokcford가 지정했습니다.\\ |
- | var myJSON = ' | + | |
- | var myObj = JSON.parse(myJSON); | + | |
- | document.getElementById(" | + | |
- | </ | + | |
- | </ | + | ===== Why Use JSON? ===== |
- | </ | + | JSON 포맷은 구문적으로 JavaScript 객체를 생성하기 위한 코드와 유사합니다.\\ |
+ | 이 때문에 JavaScript 프로그램은 JSON 데이터를 JavaScript 객체로 쉽게 변환할 수 있습니다.\\ | ||
+ | \\ | ||
+ | JSON 포맷이 텍스트로만 되어있어, | ||
+ | 모든 프로그래밍 언어에서 사용할 수 있습니다.\\ | ||
+ | \\ | ||
+ | JavaScript에는 JSON 문자열을 JavaScript 객체로 변환하는 내장 함수가 있습니다: | ||
+ | \\ | ||
+ | **'' | ||
+ | \\ | ||
+ | JavaScript에는 객체를 JSON 문자열로 변환하는 내장 함수도 있습니다.\\ | ||
+ | \\ | ||
+ | **'' | ||
+ | \\ | ||
+ | 서버에서 순수 텍스트를 받아 JavaScript 객체로 사용할 수 있습니다. | ||
+ | JavaScript 객체를 순수한 텍스트 포맷으로 서버에 보낼 수 있습니다. | ||
+ | 복잡한 구문 분석 및 번역 없이, 데이터를 JavaScript 객체로 사용할 수 있습니다. | ||
- | =====Storing Data===== | + | ===== Storing Data ===== |
- | 데이터를 저장할 때, 데이터는 특정 형식이어아 하고, 저장 위치 | + | 데이터를 저장할 때 데이터는 특정 형식이어야 하며\\ |
+ | 저장 위치에 관계없이 텍스트는 항상 | ||
\\ | \\ | ||
- | %%JSON%%을 사용하면 | + | JSON을 사용하면 JavaScript 객체를 텍스트로 저장할 수 있습니다.\\ |
- | ====Example==== | + | ====== JSON 객체 ====== |
- | 데이터를 로컬 저장소에 저장하기\\ | + | 자바스크립트 배열과 객체를 활용해 자료를 표현하는 방식\\ |
+ | 자바스크립트 객체를 JSON 문자열로 변환할 때는 JSON.stringify()메소드를 사용합니다.\\ | ||
+ | \\ | ||
<code javascript> | <code javascript> | ||
- | < | + | const data = [ |
+ | { | ||
+ | name : ' | ||
+ | , price : 18000 | ||
+ | , publisher : ' | ||
+ | } | ||
+ | , | ||
+ | { | ||
+ | name : 'HTML5 웹 프로그래밍 입문' | ||
+ | , price : 20000 | ||
+ | , publisher : ' | ||
+ | } | ||
+ | ] | ||
- | < | + | console.log(JSON.stringify(data)); |
- | + | console.log(' | |
- | <p id=" | + | console.log(JSON.stringify(data, null, 2)); |
- | + | ||
- | < | + | |
- | var myObj, myJSON, text, obj; | + | |
- | + | ||
- | // Storing data: | + | |
- | myObj = { name: " | + | |
- | myJSON = JSON.stringify(myObj); | + | |
- | | + | |
- | + | ||
- | // Retrieving data; | + | |
- | text = localStorage.getItem(" | + | |
- | obj = JSON.parse(text); | + | |
- | document.getElementById(" | + | |
- | </ | + | |
- | + | ||
- | </ | + | |
</ | </ | ||
- | |||
- | =====What is JSON?===== | ||
- | JSON은 JavaScript Object Notation을 나타냅니다. | ||
- | JSON은 경량의 데이터 교환 형식입니다. | ||
- | JSON은 " | ||
- | JSON은 언어 독립적입니다* | ||
- | |||
- | |||
- | JSON은 JavaScript 구문을 사용하지만 JSON 형식은 텍스트 전용입니다. | ||
- | 모든 프로그래밍 언어에서 텍스트를 읽고 데이터 형식으로 사용할 수 있습니다. | ||
- | |||
- | JSON 형식은 원래 Douglas Crockford가 지정했습니다. | ||
- | |||
- | =====Why use JSON?===== | ||
- | %%JSON%% 형식은 텍스트 전용이므로, | ||
\\ | \\ | ||
- | %%JavaScript%%에는 %%JSON%% 형식으로 작성된 | + | **결과 : **\\ |
+ | <code javascript> | ||
+ | [{" | ||
+ | +++++++++++++++++++++++++++ | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
\\ | \\ | ||
- | '' | + | <code javascript> |
+ | console.log(JSON.stringify(data)); // 매개변수를 하나만 넣으면 한 줄로 반환됩니다. | ||
+ | </ | ||
\\ | \\ | ||
- | 따라서 서버에서 %%JSON%% 형식으로 데이터를 수신하면, 다른 %%JavaScript%% | + | <code javascript> |
- | + | console.log(JSON.stringigy(data, null, 2)); | |
+ | //null : 2번째 매개변수는 | ||
+ | //2: 들여쓰기 2칸으로 설정합니다.\\ | ||
+ | //--출처 : [혼자 공부하는 자바스크립트] | ||
+ | </ | ||