了解JSON
什么是JSON?
- JSON是JavaScript对象表示法(JavaScript Object Notation)
- JSON是轻量级的文本数据交换格式
- JSON本质是一个字符串
- 很多动态(PHP,JSP,.NET)编程语言都支持JSON
JSON常用的两种类型:对象和数组。
JSON语法规则:
- 对象表示为键值对
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 键/值对(对象)
JSON键值对是保存JS对象的一种方式,数据结构为:{key1:value1, key2:value2, ...} {"键名1":"值1", "键名2":"值2",...},其中,key为对象的属性,value为对应的值;键名可以用整数和字符串来表示,值的类型可以是任意类型。
示例:{"firstName" :"Json"}
{"Name" :"Json","Age":"15"}
JSON数组
JSON表示数组需要使用方括号[ ]。
示例:{"people": [ { "Name": "Json","Age":"15"} ,{"Name":"John","Age":"23" } ] }
JSON使用
把JSON文本转换为JavaScript对象
JSON最常见用法之一,从web服务器上读取JSON数据(作为文件或作为HttpRequest),将JSON数据转换为JavaScript对象,然后在网页上使用该数据。
JSON语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误: var obj = eval ("("+txt+")");
示例:
<!-- 包含JSON语法的JavaScript字符串-->
var txt = '{ "sites" : [' +
'{ "name":"菜鸟教程" , "url":"www.runoob.com" },' +
'{ "name":"google" , "url":"www.google.com" },' +
'{ "name":"微博" , "url":"www.weibo.com" } ]}';
var obj = eval ("(" + txt + ")");
document.getElementById("name").innerHTML=obj.sites[0].name
document.getElementById("url").innerHTML=obj.sites[0].url
JSON和JS对象互转
要实现从对象转换为JSON字符串,使用JSON.stringify()方法:
var json=JSON.stringify({a:'Hello', b:'World'});
//结果为'{"a":"Hello","b":"World"}'
要实现从JSON转换为对象,使用JSON.parse()方法:
var obj=JSON.parse('{"a":"Hello", "b":"World"}');
//结果为{a: 'Hello',b: 'World'}