# JSON教程
* * *
JSON:**J**ava**S**cript**O**bject**N**otation(JavaScript 对象表示法)
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
## JSON 实例
{ "sites": \[ { "name":"JSOn教程" , "url":"www.baishenghua.cn" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } \] }
这个 sites 对象是包含 3 个站点记录(对象)的数组。
* * *
## 什么是 JSON ?
* JSON 指的是 JavaScript 对象表示法(**J**ava**S**cript**O**bject**N**otation)
* JSON 是轻量级的文本数据交换格式
* JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
* JSON 具有自我描述性,更易理解
* * *
## JSON - 转换为 JavaScript 对象
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
# JSON\- 简介
* * *
## 在线实例
通过我们的编辑器,您可以在线编辑 JavaScript 代码,然后通过点击一个按钮来查看结果:
## JSON 实例
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON教程</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":"JSON教程",
"url":"www.baishenghua.cn",
"slogan":"学的不仅是技术,更是梦想!"
};
document.getElementById("jname").innerHTML=JSONObject.name
document.getElementById("jurl").innerHTML=JSONObject.url
document.getElementById("jslogan").innerHTML=JSONObject.slogan
</script>
</body>
</html>
```
* * *
## 与 XML 相同之处
* JSON 是纯文本
* JSON 具有"自我描述性"(人类可读)
* JSON 具有层级结构(值中存在值)
* JSON 可通过 JavaScript 进行解析
* JSON 数据可使用 AJAX 进行传输
* * *
## 与 XML 不同之处
* 没有结束标签
* 更短
* 读写的速度更快
* 能够使用内建的 JavaScript eval() 方法进行解析
* 使用数组
* 不使用保留字
* * *
## 为什么使用 JSON?
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
#### 使用 XML
* 读取 XML 文档
* 使用 XML DOM 来循环遍历文档
* 读取值并存储在变量中
#### 使用 JSON
* 读取 JSON 字符串
* 用 eval() 处理 JSON 字符串
# JSON语法
* * *
JSON 语法是 JavaScript 语法的子集。
* * *
## JSON 语法规则
JSON 语法是 JavaScript 对象表示语法的子集。
* 数据在名称/值对中
* 数据由逗号分隔
* 大括号{}保存对象
* 中括号\[\]保存数组,数组可以包含多个对象
* * *
## JSON 名称/值对
JSON 数据的书写格式是:
~~~
key : value
~~~
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"name" : "JSON教程"
这很容易理解,等价于这条 JavaScript 语句:
name = "JSON教程"
* * *
## JSON 值
JSON 值可以是:
* 数字(整数或浮点数)
* 字符串(在双引号中)
* 逻辑值(true 或 false)
* 数组(在中括号中)
* 对象(在大括号中)
* null
* * *
## JSON 数字
JSON 数字可以是整型或者浮点型:
{ "age":30 }
* * *
## JSON 对象
JSON 对象在大括号{}中书写:
~~~
{key1 : value1, key2 : value2, ... keyN : valueN }
~~~
对象可以包含多个名称/值对:
{ "name":"JSON教程" , "url":"www.baishenghua.cn" }
这一点也容易理解,与这条 JavaScript 语句等价:
name = "JSON教程" url = "www.baishenghua.cn"
* * *
## JSON 数组
JSON 数组在中括号\[\]中书写:
数组可包含多个对象:
~~~
[
{ key1 : value1-1 , key2:value1-2 },
{ key1 : value2-1 , key2:value2-2 },
{ key1 : value3-1 , key2:value3-2 },
...
{ keyN : valueN-1 , keyN:valueN-2 },
]
~~~
```
var sites = [
{ "name":"json" , "url":"www.baishenghua.cn" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
];
```
在上面的例子中,对象**sites**是包含三个对象的数组。每个对象代表一条关于某个网站(name、url)的记录。
* * *
## JSON 布尔值
JSON 布尔值可以是 true 或者 false:
{ "flag":true }
* * *
## JSON null
JSON 可以设置 null 值:
{ "runoob":null }
* * *
## JSON 使用 JavaScript 语法
因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:
## 实例
```
var sites = [
{ "name":"json" , "url":"www.baishenghua.cn" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
];
```
可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):
sites\[0\].name;
返回的内容是:
runoob
可以像这样修改数据:
sites\[0\].name\="JSON教程";
在下面的章节,您将学到如何把 JSON 文本转换为 JavaScript 对象。
* * *
## JSON 文件
* JSON 文件的文件类型是.json
* JSON 文本的 MIME 类型是application/json
# JSON vs XML
JSON 和 XML 都用于接收 web 服务端的数据。
JSON 和 XML在写法上有所不同,如下所示:
## JSON 实例
```
{ "sites": [
{ "name":"JSON教程" , "url":"www.baishenghua.cn" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" } ]
}
```
## XML 实例
```
<sites>
<site>
<name>JSON教程</name> <url>www.baishenghua.cn</url>
</site>
<site>
<name>google</name> <url>www.google.com</url>
</site>
<site>
<name>微博</name> <url>www.weibo.com</url>
</site>
</sites>
```
JSON 与 XML 的相同之处:
* JSON 和 XML 数据都是 "自我描述" ,都易于理解。
* JSON 和 XML 数据都是有层次的结构
* JSON 和 XML 数据可以被大多数编程语言使用
JSON 与 XML 的不同之处:
* JSON 不需要结束标签
* JSON 更加简短
* JSON 读写速度更快
* JSON 可以使用数组
> **最大的不同是**:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。
>
> * JSON.parse(): 将一个 JSON 字符串转换为 JavaScript 对象。
> * JSON.stringify(): 于将 JavaScript 值转换为 JSON 字符串。
* * *
## 为什么 JSON 比 XML 更好?
XML 比 JSON 更难解析。
JSON 可以直接使用现有的 JavaScript 对象解析。
针对 AJAX 应用,JSON 比 XML 数据加载更快,而且更简单:
使用 XML
* 获取 XML 文档
* 使用 XML DOM 迭代循环文档
* 接数据解析出来复制给变量
使用 JSON
* 获取 JSON 字符串
* JSON.Parse 解析 JSON 字符串
- Java Web项目开发学习手册
- 一、B/S开发环境搭建
- 1.1 tomcat服务器目录结构及作用
- 1.2 在IDE开发工具上配置tomcat服务器
- 1.3 简单web项目在tomcat服务器上运行的方法
- 1.4 开发工具设置
- 1.5 总结
- 二、Servlet技术应用
- 2.1 HttpServlet中的主要方法及应用
- 2.1.1 基于Eclipse完成一个JavaWeb项目
- 2.2 HttpRequest,HttpResponse的应用
- 2.2.1客户端请求
- 2.2.2服务器响应
- 2.2.3Servlet HTTP 状态码
- 2.2.4图片验证码类
- 2.2.5注册模拟实现(带验证码)
- 2.3 ServletConfig对象和ServletContext对象的概念
- 2.4 总结
- 三、JSP技术应用
- 3.1 JSP基本语法
- 3.2 JSP标签和指令
- 3.3 JSP中的隐式对象
- 3.4 常用应用操作
- 3.4.1 JSP客户端请求
- 3.4.2 JSP服务器响应
- 3.4.3 HTTP状态码
- 3.4.4 表单处理
- 3.4.5 过滤器
- 3.4.6 Cookie处理
- 3.4.7 Session处理
- 3.4.8 文件上传
- 3.4.9 日期处理
- 3.4.10 页面重定向
- 3.4.11 点击量统计
- 3.4.12 自动刷新
- 3.4.13 发送邮件
- 3.5 JSP高级应用
- 3.5.1 JSP标准标签库(JSTL)
- 3.5.2 JSP连接数据库
- 3.5.3 JSP XML数据处理
- 3.5.4 JSP JavaBean
- 3.5.5 自定义标签
- 3.5.6 表达式语言
- 3.5.7 异常处理
- 3.5.8 调试
- 3.5.9 JSP国际化
- 3.6 实践代码
- 3.6.1 实践代码
- 3.6.2 项目实战
- 3.7 总结
- 四、MVC思想的理解和搭建MVC
- 4.1 MVC设计模式的思想
- 4.2 MVC设计模式的实现步骤
- 4.3 项目实践
- 4.4 总结
- 五、EL表达式和JSTL技术
- 5.1 EL表达式及其应用
- 5.2 常用的JSTL标签的应用
- 5.3 项目实践
- 5.4 总结
- 六、Cookie和Session
- 6.1 cookie对象的概念和应用
- 6.2 session对象的概念和应用
- 6.3 项目实践
- 6.4 总结
- 七、过滤器技术应用
- 7.1 Filter的概念及应用
- 7.2 Filter、FilterChain、FilterConfig 介绍
- 7.3 用户登录过滤案例
- 7.4 项目实战
- 7.5总结
- 八、异步请求技术
- 8.1 JSON数据格式
- 8.2 使用AJAX实现异步请求
- 8.3 用户名校验案例
- 8.4小结
- 综合项目技术实训
- 1.BS项目开发项目实战
- 2.项目需求分析和系统设计
- 2.1需求分析
- 2.2类型模型设计
- 2.3原型设计
- 3.项目数据库分析和系统设计
- 4.BS项目编程实现
- 4.1搭建框架和命名规约
- 4.2实现步骤
- 4.2.1创建实体类
- 4.2.2创建过滤器类
- 4.2.3创建工具类
- 4.2.4创建DAO接口及其实现类
- 4.2.5创建Service接口及其实现类
- 4.2.6创建测试类
- 4.2.7创建控制器类
- 5.企业开发流程规范
- 6.总结
- 九、练习题及答案
- 企业开发常用技术
- 1.Maven技术
- Java命名规范解读
- 参考资料
- 开发中常用的应用服务器和Web服务器