Json学习笔记
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 语法规则
JSON 语法是 JavaScript 对象表示法语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 文件
- JSON 文件的文件类型是 ".json"
- JSON 文本的 MIME 类型是 "application/json"
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"姓名" : "李明"
这很容易理解,等价于这条 JavaScript 语句:
姓名 = "李明"
JSON 值
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
Json格式数据表示方法
Json使用花括号表示对象,使用方括号表示数组。二则的组合可以表述具有复杂结构的数据。
例如:
{key:value,key2:value2}
[1,2,3,4,4,4,4,5,6,76]
[{"姓名":"李明","年龄":18},{"姓名":"李龙","年龄":19},{"姓名":"李百","年龄":17}]
程序例子:
var myJson = [{ "姓名": "李明", "年龄": 18 }, { "姓名": "李龙", "年龄": 19 }, { "姓名": "李百", "年龄": 17 }]; alert(myJson[0].姓名); //读取姓名 myJson[3].姓名 = "李白"; //修改姓名 alert(myJson[2].姓名); //读取姓名
运行结果如下:
由于运行期间更改了第三个对象的姓名,所以李百变成了李白了。
把 JSON 文本转换为 JavaScript 对象
JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。
解析Json
可以使用eval()函数解析Json数据
示例代码:
var str='[{ "姓名": "李明", "年龄": 18 },'+ '{ "姓名": "李龙", "年龄": 19 },'+ '{ "姓名": "李百", "年龄": 17 }]'; var obj = eval(str);
运行结果如下(运行结果截图是在IE11的开发人员工具里的监视内容):
JSON 解析器
提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。
在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。
Web 浏览器支持
Firefox (Mozilla) 3.5
- Internet Explorer 8
- Chrome
- Opera 10
- Safari 4
Web 软件支持
- jQuery
- Yahoo UI
- Prototype
- Dojo
- ECMAScript 1.5