Json学习笔记

JSON:JavaScript 对象表示法(JavaScript Object Notation)。web

JSON 是存储和交换文本信息的语法。相似 XML。json

JSON 比 XML 更小、更快,更易解析。数组

 

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。浏览器

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

 

JSON 文件

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

 

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。安全

名称/值对包括字段名称(在双引号中),后面写一个冒号,而后是值:服务器

"姓名" : "李明"

这很容易理解,等价于这条 JavaScript 语句:app

姓名 = "李明"

JSON 值

JSON 值能够是:函数

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

Json格式数据表示方法工具

Json使用花括号表示对象,使用方括号表示数组。二则的组合能够表述具备复杂结构的数据。spa

例如:

{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
相关文章
相关标签/搜索