首页 > 代码库 > Json学习笔记

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].姓名);        //读取姓名

运行结果如下:

image image

由于运行期间更改了第三个对象的姓名,所以李百变成了李白了。

 

把 JSON 文本转换为 JavaScript 对象

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

 

解析Json

可以使用eval()函数解析Json数据

示例代码:

var str=‘[{ "姓名": "李明", "年龄": 18 },‘+            ‘{ "姓名": "李龙", "年龄": 19 },‘+        ‘{ "姓名": "李百", "年龄": 17 }]‘;            var obj = eval(str);

运行结果如下(运行结果截图是在IE11的开发人员工具里的监视内容):

image

 

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

Json学习笔记