JSON简介: 

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

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

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

一个简单的JSON实例:  

{
    "student": [
    { "name":"张三" , "sex":"男" }, 
    { "name":"李四" , "sex":"男" }, 
    { "name":"王二麻子" , "sex":"女" }
    ]
} 

 

 JSON语法

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

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

   JSON 值可以是:

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

  JSON 对象在花括号中书写,对象可以包含多个名称/值对:

     一个例子:   

{"name":"张三"}

 

    可以同过以下两种方法获取对象的值:

var student,x;
student={"name":"张三","sex":"M"}
x=student["name"];//通过([""])
x=student.sex;//通过(.)

 

 

JSON 数组在方括号中书写,数组可包含多个对象:

   一个例子:

{
"student": [
    { "name":"张三" , "sex":"男" }, 
    { "name":"王二麻子" , "sex":"女" }
]
} 
//student是包含两个对象的数组。

 

   

   JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。通过 JavaScript,可以创建一个对象数组,并像这样进行赋值:

  

var student= [
    { "name":"张三" , "sex":"男" }, 
    { "name":"李四" , "sex":"男" }, 
    { "name":"王二麻子" , "sex":"女" }
    ]

 

  访问数组的元素可以用下面方法:

student[0].name;//返回张三
student[1].sex="女";//修改数据

 

 JSON.parse() 

  JSON 通常用于与服务端交换数据。

  在接收服务器数据时一般是字符串。

  我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。

  JSON.parse()有两个参数,第一个是必须的有效的JSON字符串,第二个是可选的函数,会为每个对象成员调用这个函数。

  例如:

var obj=JSON.parse('{"name":"李四","sex":"男"}')//这里注意传入的是字符串

 

 JSON.stringify() 

  JSON 通常用于与服务端交换数据。

  在向服务器发送数据时一般是字符串。

  我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

  同样,JSON.stringify()有三个参数,第一个必须的有效的JSON对象,第二个可选的用于转换结果的函数或者数组,第三个可选的文本添加缩进、空格和换行符,而如果是一个数字的话,则返回值文本在每个级别缩进指定数目的空格。如果 space 大于 10,则文本缩进10个空格。

var student={"name":"张三","sex":"男"};
var str=JSON.stringify(student);
document.getElementById("01").innerHTML=str;

 

 

eval() 函数

   eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误。

   

var student='{"name","张三","sex":"M"}'
var obj = eval ("(" + student + ")");