轻量级数据交换格式JSON
JSON是轻量级的数据交换格式
JSON独立于语言*
JSON是"自描述的"且易于理解
JSON 的语法是来自JavaScript 对象符号的语法,但JSON格式是纯文本。读取和生成JSON数据的代码可以在任何编程语言编写的。
JSON语法规则:
数据是名称/值对
数据由逗号分隔
花括号保存对象
方括号保存数组
<!DOCTYPE html> <html> <body> <h1>用 JSON 字符串创建对象</h1> <p id="demo"></p> <script> var text = '{"employees":[' + '{"firstName":"Bill","lastName":"Gates" },' + '{"firstName":"Steve","lastName":"Jobs" },' + '{"firstName":"Elon","lastName":"Musk" }]}'; obj = JSON.parse(text); document.getElementById("demo").innerHTML = obj.employees[1].firstName + " " + obj.employees[1].lastName; </script> </body> </html>
发送数据(JSON)到服务器
<!DOCTYPE html> <html> <body> <h2>把 JavaScript 对象转换为 JSON 字符串,然后发送到服务器。</h2> <script> var myObj = { "name":"Bill Gates", "age":62, "city":"Seattle" }; var myJSON = JSON.stringify(myObj); window.location = "/demo/demo_json.php?x=" + myJSON; </script> </body> </html>
接收数据(JSON)
<!DOCTYPE html> <html> <body> <h1>把 JSON 格式的字符串,转换为 JavaScript 对象:</h1> <p id="demo"></p> <script> var myJSON = '{ "name":"Bill Gates", "age":62, "city":"Seattle" }'; var myObj = JSON.parse(myJSON); document.getElementById("demo").innerHTML = myObj.name; </script> </body> </html>
将数据存储为文本
<!DOCTYPE html> <html> <body> <h1>通过 local storage 存储并取回数据:</h1> <p id="demo"></p> <script> var myObj, myJSON, text, obj; // 存储数据: myObj = { "name":"Bill Gates", "age":62, "city":"Seattle" }; myJSON = JSON.stringify(myObj); localStorage.setItem("testJSON", myJSON); // 取回数据: text = localStorage.getItem("testJSON"); obj = JSON.parse(text); document.getElementById("demo").innerHTML = obj.name; </script> </body> </html>
JSON和XML的区别
JSON不使用标签,而且更短,JSON的读写速度更快 ,并且可使用数组
最大的不同在于:XML必须使用XML解析器进行解析,而JSON可通过标准的JavaScript函数进行解析。
JSON比XML好在:
XML 比JSON更难解析
JSON 被解析为可供使用的Javascript对象
对于AJAX应用程序,JSON比 XML更快更易用
JSON中的字符串必须用双引号包围。
JSON中的数字必须是整数或浮点数。
JSON中的值可以是对象,数组,布尔,空值等等