문서의 이전 판입니다!
JSON: JavaScript Object Notation.(자바스크립트 객체 표기법) JSON은 데이터를 저장, 교환하기 위한 문법(구문, Syntax)입니다. JSON은 자바스크립트 객체 표기법으로 작성된 텍스트입니다.
브라우저와 서버 간에 데이터를 교환할 때, 텍스트만이 데이터가 될 수 있습니다.
JSON은 텍스트이며, 모든 JavaScript 객체를 JSON으로 변환하고, JSON을 서버로 보낼 수 있습니다.
서버에서 받은 모든 JSON을 JavaScript 객체로 변환할 수도 있습니다.
이렇게 하면, 복잡한 구문 분석(parsing) 및 번역 없이 JavaScript 객체로서의 데이터로 작업할 수 있습니다.
JavaScript 객체에 데이터를 저장할 경우, 객체를 JSON으로 변환하여 서버로 보낼 수 있습니다.
<body> <h2>Convert a JavaScript object into a JSON string, and send it to the server.</h2> <!-- demo_json.php: John from New York is 31 --> <script> var myObj = { name: "John", age: 31, city: "New York" }; var myJSON = JSON.stringify(myObj); window.location = "demo_json.php?x=" + myJSON; </script> </body>
JSON 포맷으로 데이터를 받는 경우, JavaScript 객체로 변환할 수 있습니다.
<body> <h2>Convert a string written in JSON format, into a JavaScript object.</h2> <p id="demo"></p> <script> var myJSON = '{"name":"John", "age":31, "city":"New York"}'; var myObj = JSON.parse(myJSON); document.getElementById("demo").innerHTML = myObj.name; // John </script> </body>
데이터를 저장할 때, 데이터는 특정 형식이어아 하고, 저장 위치 선택과 관계없이 텍스트는 항상 정상적인(legal) 형식 중 하나입니다.
JSON을 사용하면 JavaScript 객체를 텍스트로 저장할 수 있습니다.
데이터를 로컬 저장소에 저장하기
<body> <h2>Store and retrieve data from local storage.</h2> <p id="demo"></p> <script> var myObj, myJSON, text, obj; // Storing data: myObj = { name: "John", age: 31, city: "New York" }; myJSON = JSON.stringify(myObj); localStorage.setItem("testJSON", myJSON); // Retrieving data; text = localStorage.getItem("testJSON"); obj = JSON.parse(text); document.getElementById("demo").innerHTML = obj.name; // John </script> </body>
JSON은 JavaScript Object Notation을 나타냅니다. JSON은 경량의 데이터 교환 형식입니다. JSON은 "자체 설명"이며 이해하기 쉽습니다. JSON은 언어 독립적입니다*
JSON은 JavaScript 구문을 사용하지만 JSON 형식은 텍스트 전용입니다. 모든 프로그래밍 언어에서 텍스트를 읽고 데이터 형식으로 사용할 수 있습니다.
JSON 형식은 원래 Douglas Crockford가 지정했습니다.
JSON 형식은 텍스트 전용이므로, 서버와 쉽게 주고받을 수 있으며, 모든 프로그래밍 언어에서 데이터 형식으로 사용할 수 있습니다.
JavaScript에는 JSON 형식으로 작성된 문자열을 네이티브 JavaScript 객체로 변환하는 내장 함수가 있습니다.
JSON.parse()
따라서 서버에서 JSON 형식으로 데이터를 수신하면, 다른 JavaScript 객체와 마찬가지로 사용할 수 있습니다.