7.1 JSON介绍
JSON即JavaScript 对象标记法(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于编程语言的文本格式来存储和表示数据,是一种存储和交换数据的语法
JSON易于人阅读和编写的同时,便于机器解析和生成,可有效地提升网络传输效率,是理想的数据交换语言
7.2 JSON和XML的区别
XML即扩展标记语言(Extensible Markup Language),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言
- XML 文件格式复杂,标记比数据多,传输占带宽
- JSON 数据格式易于读写,没有附加标记,占用带宽小
- XML可以作为跨平台的数据交换格式,数据共享方便
- JSON数据加载更快、更简单
- XML 需要使用 XML 解析器来解析,在JS中处理不方便
- JSON 可以使用JS来解析
{"name":[ { "firstName":"JSON", "lastName":"实例" }, ]}
<sites> <name> <firstName>XML</firstName> <lastName>实例</lastName> </name> </sites>
7.3 JSON的构成
JSON数据书写格式是key : value,其值(value)可以是
- 对象(object)
- 数组(array)
- 数值(number)
- 字符串(string)
- 逻辑值(true 或 false)
- null
7.4 JSON的语法
在 JSON 中,字符串值必须由双引号编写
{ "name":"Yeats" }
在 JavaScript 中,可以使用单引号或双引号的字符串值
{ name:'Yeats' } { name:"Yeats" } { "name":"Yeats" }
通过JSON 使用 JavaScript 语法可以创建一个对象数组并赋值
//对象 var obj = JSON.parse('{ "name":"Yeats", "age":18, "address": {"country" : "C" } }');
//数字 { "age":18 }
//数组 { "sites":[3, 1, 4, 1, 5, 9, 2, 6] }
7.5 JSON.parse()
JSON 通常用于与服务端进行数据传输,在接收Web服务器数据时一般是字符串
JSON.parse()
方法是JavaScript的函数,把数据解析为 JavaScript 对象
JSON.parse(text[, reviver])
- text 必需, 一个有效的 JSON 字符串
- reviver 可选,一个转换结果的函数, 将为对象的每个成员调用此函数
从 Web 服务器接收到的数据:
'{ "name": "Yeats", "age": 18, "address": {"country" : "china"}'
使用JSON.parse() 把数据解析为 JavaScript 对象
var obj = JSON.parse('{ "name":"Yeats", "age":18, "address": {"country" : "C" } }');
<p id="demo"></p> <script> var obj = JSON.parse('{ "name":"Yeats", "age":18, "address": {"country" : "C" } }'); document.getElementById("demo").innerHTML = obj.name + ":" + obj.address.country; </script>
//接受的数据 Yeats:C
7.6 JSON.stringify()
JSON 通常用于与服务端进行数据传输,向Web服务器发送数据时一般是字符串
JSON.stringify()
方法是JavaScript的函数,把 JavaScript 对象解析为字符串
JSON.stringify(value[, replacer[, space]])
- value 必需, 要转换的 JavaScript 值
- replacer 可选,一个转换结果的函数, 将为对象的每个成员调用此函数
- space 可选,文本添加缩进、空格和换行符
向 Web 服务器发送的数据:
var obj = { "name":"Yeats", "age":18, "address": {"country" : "C" } };
使用JSON.parse() 把 JavaScript 对象解析为字符串
var obj = JSON.stringify({ "name":"Yeats", "age":18, "address": {"country" : "C" } });
<p id="demo"></p> <script> var obj =JSON.stringify({ "name":"Yeats", "age":18, "address": {"country" : "C" } }); document.getElementById("demo").innerHTML = obj; </script>
//接受的数据 {"name":"Yeats","age":18,"address":{"country":"C"}}