JSON(8/31)

JavaScript JSON
  • JSON 是用于存储和传输数据的格式。
  • JSON 通常用于服务端向网页传递数据 。

JSON全称JavaScript Object Notation
JSON是基于JavaScript的,是JavaScript的一个子集。JSON是用JavaScript语法来表示数据的一种轻量级语言。

JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本。
文本可以被任何编程语言读取及作为数据格式传递。

JSON 语法规则

  • 数据为 键/值 对。
    一个名称对应一个值.
    JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。
    键/值对包括字段名称(在双引号中),后面一个冒号,然后是值:
"name":"Runoob"
  • 数据由逗号分隔。
  • 大括号保存对象
    JSON 对象保存在大括号内.
    就像在 JavaScript 中, 对象可以保存多个 键/值 对:
{"name":"Runoob", "url":"www.runoob.com"}
  • 方括号保存数组
    JSON 数组保存在中括号内。
    就像在 JavaScript 中, 数组可以包含对象:
{"sites":[
    {"name":"Runoob", "url":"www.runoob.com"}, 
    {"name":"Google", "url":"www.google.com"},
    {"name":"Taobao", "url":"www.taobao.com"}
]}

以上 JSON 语法定义了 sites 对象: 对象 "sites" 是一个数组,包含了三个对象。
每个对象为站点的信息(网站名和网站地址)。

在JavaScript中, 对于对象构造有两种方法:基于对象的完整写法,字面量表示法。前者:

var obj = new Object();
obj.title = "title1";
obj.content = "content1";

而与之对应的字面量表示法则写为:

var obj = {
    title: "title1",
    content: "content1"
};

JSON基本就是字面量表示法的一个子集,除了强制要求键与字符串类型的值必须用双引号包起之外,它剔除了undefined、function等类型,也不包括浏览器内置对象类型(如Date、RegExp等),是基于文本的、比较纯粹的数据表示方法。

XML, JSON对比:

XML:



  
Article Title1 content1
Article Title2 content2

JSON:

{
  "article" : [
    {
      "title": "Article Title1",
      "content": "content1"
    },
    {
      "title": "Article Title2",
      "content": "content2"
    }
  ]
}
JSON 字符串转换为 JavaScript 对象

通常我们从服务器中读取 JSON 数据(作为文件或作为 HttpRequest),并在网页中显示数据.

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同,由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象

使用字符串作为输入进行演示:





菜鸟教程(runoob.com)


从 JSON 字符串中创建对象

网站名:
网站地址:

JSON.parse()与 eval() 比较:


eval()在解析字符串时,会执行该字符串中的代码(这样的后果是相当恶劣的)

你可能感兴趣的:(JSON(8/31))