json01-json简介和语法

 

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

JSON 是存储和交换文本信息的语法。相似 XML,但比 XML 更小、更快,更易解析,是轻量级的文本数据交换格式,独立于语言,具备自我描述性,更易理解。 编程

JSON 使用 Javascript语法来描述数据对象,可是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不一样的编程语言。 目前很是多的动态(PHP,JSP,.NET)编程语言都支持JSON。json

json数据格式以下:数组

//employee 对象是包含 3 个员工记录(对象)的数组
{
    "employees": [ 
        { "firstName":"John" , "lastName":"Doe" }, 
        { "firstName":"Anna" , "lastName":"Smith" }, 
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}       

JSON - 转换为 JavaScript 对象

JSON 文本格式在语法上与建立 JavaScript 对象的代码相同。因为这种类似性,无需解析器,JavaScript 程序可以使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。app

与 XML 相同之处编程语言

  • JSON 是纯文本
  • JSON 具备"自我描述性"(人类可读)
  • JSON 具备层级结构(值中存在值)
  • JSON 可经过 JavaScript 进行解析
  • JSON 数据可以使用 AJAX 进行传输

与 XML 不一样之处函数

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 可以使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

对于 AJAX 应用程序来讲,JSON 比 XML 更快更易使用:网站

使用 XML

  • 读取 XML 文档
  • 使用 XML DOM 来循环遍历文档
  • 读取值并存储在变量中

使用 JSON

  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串

如下是一个json小栗子:url

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h2>JavaScript 建立 JSON 对象</h2>
<p>
网站名称: <span id="jname"></span><br /> 
网站地址: <span id="jurl"></span><br /> 
网站 slogan: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= { "name":"菜鸟教程", "url":"www.runoob.com", "slogan":"学的不只是技术,更是梦想!" };
document.getElementById("jname").innerHTML=JSONObject.name; 
document.getElementById("jurl").innerHTML=JSONObject.url; 
document.getElementById("jslogan").innerHTML=JSONObject.slogan; 
</script>

</body>
</html>

JSON 语法规则

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

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

JSON 名称/值对

JSON 数据的书写格式是:名称/值对,包括字段名称(在双引号中),后面写一个冒号,而后是值:   "firstName" : "John"

这很容易理解,等价于这条 JavaScript 语句:   firstName = "John"

JSON 值

JSON 值能够是:

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

JSON 对象

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

{

  "firstName":"John" ,

  "lastName":"Doe"

}

这一点也容易理解,与这条 JavaScript 语句等价:firstName = "John"   lastName = "Doe"

JSON 数组

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

//对象 "employees" 是包含三个对象的数组。每一个对象表明一条关于某人(有姓和名)的记录。
{
  "employees": [
    { "firstName":"John" , "lastName":"Doe" }, 
    { "firstName":"Anna" , "lastName":"Smith" }, 
    { "firstName":"Peter" , "lastName":"Jones" }
  ]
}

JSON 使用 JavaScript 语法

由于 JSON 使用 JavaScript 语法,因此能够直接处理 JavaScript 中的 JSON。经过 JavaScript能够建立一个对象数组,进行赋值:

var employees = [
    { "firstName":"John" , "lastName":"Doe" }, 
    { "firstName":"Anna" , "lastName":"Smith" }, 
    { "firstName":"Peter" , "lastName": "Jones" }
];

访问 JavaScript 对象数组中的第一项:employees[0].lastName;

修改数据:employees[0].firstName = "Jonatan";

JSON 文件

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json" 
相关文章
相关标签/搜索