JSON笔记
来源:互联网 发布:电信网络卡贴 编辑:程序博客网 时间:2024/05/24 07:38
JSON(JavaScript Object Notation)JavaScript对象表示法 是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集。
json简单说就是通过对象和数组两种结构来表示各种复杂的结构。
举个栗子(w3school上的):
var people = { "employees":[ {"firstName":"Bill", "lastName":"Gates"}, {"firstName":"George", "lastName":"Bush"}, {"firstName":"Thomas", "lastName":"Carter"} ]}对象employees对应一个数组,数组中存储了三组值。
访问数据:people.employees[0].firstName , 这个值就是Bill。
JSON语法规则:
JSON语法是JavaScript对象表示法语法的子集。
(1)数据在名称/值对中
(2)数据由逗号分隔
(3)花括号保存对象
(4)方括号保存数组
JSON数据的书写格式是:名称/值对。比如:
"firstName" : "John"等价于JavaScript:firstName = "John"
JSON的值可以是:
(1)数字(整数或浮点数)
(2)字符串(在双引号中)
(3)逻辑值(true或false)
(4)数组(在方括号中)
(5)对象(在花括号中)
(6)null
JSON对象:
JSON对象在花括号中书写,对象可以包含多个名称/值对:
{"firstName" : "John", "lastName" : "Doe"}
JSON数组:
JSON数组在方括号中书写,数组可以包含多个对象。
JSON的使用:
JSON最常见的用法之一,是从web服务器上读取JSON数据(作为文件或作为HttpRequest),将JSON数据转换为JavaScript对象,然后在网页中使用该数据。
var txt = '{ "employees" : [' +'{ "firstName":"Bill" , "lastName":"Gates" },' +'{ "firstName":"George" , "lastName":"Bush" },' +'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
var obj = eval ("(" + txt + ")");
<p>First Name: <span id="fname"></span><br />Last Name: <span id="lname"></span><br /></p><script type="text/javascript">document.getElementById("fname").innerHTML = obj.employees[1].firstNamedocument.getElementById("lname").innerHTML = obj.employees[1].lastName</script>
由于JSON语法是JavaScript语法的子集,JavaScript函数eval()可用于将JSON文本转换为JavaScript对象。eval()函数使用的是JavaScript的编译器,可解析JSON文本(必须把文本包围在括号中)。
但是,eval()函数可编译并执行任何JavaScript代码,这隐藏了一个潜在的安全问题。
使用JSON解析器将JSON转换为JavaScript对象是更安全的做法,JSON解析器只能识别JSON文本,不会编译脚本。在较新的浏览器中提供了原生的JSON支持,而且JSON解析器的速度更快。
jQuery.parseJSON()
函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象。
所谓"格式完好",就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。
如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常。
$.parseJSON(json) 或 如果浏览器提供了一个本地的JSON.parse()
方法,则jQuery将使用它来解析JSON字符串。
- json笔记
- Json笔记
- Json笔记
- json笔记
- json笔记
- JSON 笔记
- JSON笔记
- json笔记
- json笔记
- Json 笔记
- JSON笔记
- Json笔记
- Json笔记
- json笔记
- Json笔记
- JSON笔记
- Json(Json.Net)学习笔记
- JSON学习笔记
- ECharts图表插件禁止拖动合并
- kettle分隔列转成行
- java文件复制
- 齐聚乌镇,世界因你而精彩
- SharePreferences 工具类
- JSON笔记
- mysql Too many connections 异常
- plsql11快速创建JOB
- 使用LODOP实现循环打印
- 万能ViewHolder
- 微信企业号开发八:JSAPI模式之身份验证接口
- Android百度推送使用详解
- 《我眼中的百度QA》第三篇:百度QA的EP职责提升研发效率
- 通俗编程——白话NIO之Channel