문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
|
wiki:javascript:javascript_note:json_intro [2021/06/02 20:29] emblim98 만듦 |
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칸으로 설정합니다.\\ | ||
| + | //--출처 : [혼자 공부하는 자바스크립트] | ||
| + | </ | ||