JSON教程
一、什么是JSON
1、JSON指的是JavaScript对象表示法(JavaScript Object Notation)。
2、JSON是轻量级的文本数据交换格式,比XML更小、更快、更易解析。
3、JSON独立于语言。
4、JSON具有自我描述性、更易理解。
注意:JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。目前非常多的动态编程语言(PHP、.NET)都支持JSON。
二、JSON和XML比较
1、与XML相同之处
1)JSON是纯文本。
2)JSON具有“自我描述性”(人类可读)。
3)JSON具有层级结构(值中存在值)。
4)JSON可通过JavaScript进行解析。
5)JSON数据可使用AJAX进行传输。
2、与XML不同之处
1)没有结束标签。
2)比XML更短。
3)比XML读写的速度更快。
4)能够使用内建的JavaScript eval()方法进行解析。
5)可以使用数组。
6)不使用保留字。
3、为什么使用JSON
对于AJAX应用程序来说,JSON比XML更快更易使用:
使用XML:
读取XML文档。
使用XML DOM来循环遍历文档。
读取值并存储在变量中。
使用JSON
读取JSON字符串。
用eval()处理JSON字符串。
三、JSON语法
JSON语法是JavaScript语法的子集。
1、语法规则
JSON语法是JavaScript对象表示语法的子集。
1)数据在名称/值对中。
2)数据由逗号分隔。
3)大括号保存对象。
4)中括号保存数组。
2、JSON名称/值对
JSON数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"name":"Tom"
3、JSON值
JSON值可以是:
1)数字(整数或浮点数)。
2)字符串(在双引号中)。
3)逻辑值(true或false)。
4)数组(在中括号中)。
5)对象(在大括号中)。
6)null。
4、JSON数字
JSON数字可以是整型或者浮点型:
{"age":30}
5、JSON对象
JSON对象在大括号({})中书写:
对象可以包含多个名称/值对:
{"name":"张三","age":24}
6、JSON数组
JSON数组在中括号中书写:
数组可以包含多个对象:
{
"student":[
{"name":"张三","age":24},
{"name":"李四","age":25}
]
}
在上面的例子中,对象"student"是包含三个对象的数组。每个对象代表一条关于某个学生(name,age)的记录。
7、JSON布尔值
JSON布尔值可以是true或者false:
{"flag":true}
8、JSON null值
JSON可以设置null值:
{"student":null}
9、JSON使用JavaScript语法
因为JSON使用JavaScript语法,所以无需额外的软件就能处理JavaScript中的JSON。
通过JavaScript,你可以创建一个对象数组,并像这样进行赋值:
var student=[
{"name":"张三","age":24},
{"name":"李四","age":25}
];
可以像这样访问JavaScript对象数组中的第一项(索引从0开始)
student[0].name;
返回的内容是:
张三
可以像这样修改数据:
student[0].name="tom";
10、JSON文件
1)JSON文件的文件类型是".json"。
2)JSON文本的MIME类型是"application/json"。
四、JSON对象
1、对象语法
{"name":"张三","age":25}
JSON对象使用在大括号({})中书写。
对象可以包含多个key/value(键/值)对。
key必须是字符串,value可以是合法的JSON数据类型(字符串、数字、对象、数组、布尔值或null)。
key和value中使用冒号(:)分割。
每个key/value对使用逗号(,)分割。
2、访问对象
你可以使用点(.)来访问对象的值。
var myObj,x;
myObj={"name":"张三","age":24};
x=myObj.name;
上面的例子输出值:张三。
你也可以使用中括号([])来访问对象的值。
var myObj,x;
myObj={"name":"张三","age":24};
x=myObj["name"];
上面的例子同样输出值:张三。
3、循环对象
你可以使用for-in来循环对象的属性,使用中括号([])来访问属性的值:
var myObj={"name":"张三","age":24};
for(x in myObj){
document.getElementById("demo").innerHTML += myObj[x]+"<br>";
}
4、嵌套JSON对象
JSON对象中可以包含另外一个JSON对象:
student={
"name":"张三",
"age":24,
"score":{
"C#高级编程":94,
"SQL Server":83,
"Python":75
}
}
你可以使用点号(.)或者中括号([])来访问嵌套的JSON对象。
例如:
var x=student.score.C#高级编程;
// 或者
var x=student.score["C#高级编程"];
5、修改JSON对象的值
你可以使用点号(.)来修改JSON对象的值:
student.score.C#高级编程=90;
你也可以使用中括号([])来修改JSON对象的值:
student.score["C#高级编程"]=90;
6、删除JSON对象的属性
我们可以使用delete关键字来删除JSON对象的属性:
delete student.score.C#高级编程;
也可以使用中括号([])来删除JSON对象的属性:
delete student.score["C#高级编程"];
五、JSON数组
1、数组作为JSON对象
["C#","Java","Python"]
JSON数组在中括号中书写。
JSON中数组值必须是合法的JSON数据类型(数字、字符串、对象、数组、布尔值或null)。
JavaScript中,数组值可以是以上的JSON数据类型,也可以是JavaScript的表达式,包括函数、日期、及undefined。
2、JSON对象中的数组
对象属性的值可以是一个数组:
var student={
"name":"张三",
"age":24,
"subject":[".NET","java","python"]
}
可以使用索引值来访问数组:
var x=student.subject[0];
3、循环数组
可以使用for-in来访问数组:
for(i in student.subject) {
x += student.subject[i]+"<br>";
}
也可以使用for循环
for(int i=0;i<student.subject.length;i++) {
x+=student.subject[i]+"<br>";
}
4、嵌套JSON对象中的数组
JSON对象中数组可以包含另外一个数组,或者另外一个JSON对象:
student={
"name":"张三",
"age":24,
"score":[
{".NET":91},
{"java":85},
{"python":79}
]
}
可以使用for-in来循环访问数组
for(i in student.score) {
x +="<h1>" +student.score[i]+"</h1>";
}
5、修改数组值
可以使用索引值来修改数组值:
student.score[1]=93;
6、删除数组元素
可以使用delete关键字来删除数组元素:
delete student.score[0];
JSON教程的更多相关文章
- JSON 教程学习进度备忘
书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1. ______________ 知识点:1 ...
- 最近想学Json,请问大家有没有什么好的Json教程介绍一下?
最近想学json,请问大家有没有什么好的Json教程介绍一下? 最近学完java的框架了,想了解一下json,可是找不到相关视频,请大家有这方面的Json教程好资料就介绍下啦,最后有网址链接啦. {} ...
- JSON 教程首页
JSON教程 JSON或JavaScript对象表示法是一个轻量级的基于文本的开放式标准,旨在为人类可读的数据交换. JSON格式最初是由Douglas Crockford规定,在RFC4627中描述 ...
- json教程系列(1)-使用json所要用到的jar包下载
json是个非常重要的数据结构,在web开发中应用十分广泛.我觉得每个人都应该好好的去研究一下json的底层实现,基于这样的认识,金丝燕网推出了一个关于json的系列教程,分析一下json的相关内容, ...
- IBM开发者 JSON 教程
在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.掌握 Ajax 的这一期讨论另一种有用的数据格式 JavaScript Object Notation(JSON),以及如何 ...
- 一些JSON 教程
JSON 以下内容来自W3school. JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. ...
- Web开发——JavaScript基础(JSON教程)
参考: JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更 ...
- JSON教程基础
一.基础简介 二.JSON 语法 三.JSON 使用 一.基础简介 1.JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本 ...
- 一些非常实用的JSON 教程
以下内容来自W3school. JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 ...
随机推荐
- 【C++】const成员函数
形式: 在成员函数后面加上const限定词,表示不会修改对象内容. 例如Circle类: class Circle { double r; public: Circle(double newr) { ...
- http://www.cnblogs.com/txw1958/p/alipay-f2fpay.html
一.条码支付及二维码支付介绍 1. 条码支付 条码支付是支付宝给到线下传统行业的一种收款方式.商家使用扫码枪等条码识别设备扫描用户支付宝钱包上的条码/二维码,完成收款.用户仅需出示付款码,所有收款操作 ...
- 《JAVA与模式》之适配器模式(转载)
适配器模式比较简单,偷个懒,直接转载一篇. 个人理解: * 类适配器是通过继承来完成适配 * 对象适配器是通过传递对象来完成适配 * 不管哪种,其实都是通过引用特殊接口的对象来完成特殊接口的适配调用 ...
- iOS_21团购_Popover适应iPad横竖屏切换
终于效果图: 代码片段: // // DockItemLocation.m // 帅哥_团购 // // Created by beyond on 14-8-13. // Copyright (c) ...
- [svc]linux bridge&docker0&k8s pod网络模型通俗演义
linux namespace&bridge通俗演义 linux接口类型 br0 eth0: 一个接口 veth : 一对接口,类似一跟网线,一头有地址,另一头连到别处, linux 2个na ...
- Spring-两种配置容器
Spring提供了两种容器类型 SpringIOC容器是一个IOC Service Provider.提供了两种容器类型:BeanFactory和ApplicationContext.Sp ...
- C程序的内存布局
1.代码段(code或text): 通常是指用来存放程序执行代码的一块内存区域.这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读. 某些架构也允许代码段为可写,即允许修改程序.在代码 ...
- singer页面点击歌手singer是跳转到singer-detail的设置
1.创建components/singer-detail/singer-detail.vue 2.配置动态路由: { path: ':id', name:'singer-detail', compon ...
- Extjs combox的异步加载
很多朋友用 extjs 很多时候都要用到combo 而异步加载是用的最多的 今天我就举一个例子 了解combo的异步加载 Ext.onReady(function () { Ext.BLANK_IM ...
- 登陆时不同浏览器获取session存在的相关疑问?
问题1:在同一个电脑上,登陆成功后,将登陆信息存放到session域中后,使用另一个浏览器访问时,能否获取这个session域中的值? request.getSession().setAttribut ...