这一章主要是对Json的相关知识归纳总结。
1.什么是JSON?
JSON意为JavaScript Object Notation(JavaScript 对象表示法),用于存储和使用数据信息,相对于xml,JSON更加简洁,轻便。
虽然JSON是使用Javascript语法来描述数据对象,但是JSON还是独立于语言。通俗点说,就是可以用其他的编程语言来使用JSON。所以JSON 具有自我描述性,更易理解。
JSON与XML的区别
相同之处 | 不同之处 |
---|---|
纯文本 | 没有结束标签 |
描述性语言,非机器语言 | JSON 短小 |
有自己的层次机构 | JSON读写快 |
可用JS解析 | JSON可使用数组 |
使用AJAX进行传输 | JSON不使用保留字 |
2.JSON语法
- 数据在名称/值对中
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组
JSON的格式是以键值对的形式来表现的,通常键是字符串,而值可以是以下几种:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中)
- null
简单的形式
类型 | 格式 |
---|---|
数字 | { “number”:111 } |
字符串 | {“name”:”111abcd”} |
逻辑值 | {“flag”:true} |
数组 | {“array”:[ { “name”:”baiud” , “url”:”www.baidu.com” }, { “name”:”google” , “url”:”www.google.com” }, { “name”:”微博” , “url”:”www.weibo.com” }]} |
对象 | { “name”:”baidu” , “url”:”www.baidu.com” } |
//数组的特点在于后面的值是以数组的形式体现的,首先有个中括号表示这个值是一个数组,然后再在里面放入多个JSON对象
//json对象的特点就是:可以有多个键值对。
3.JSON对象
说到JSON对象那么我们就得说说JSON字符串和JSON对象的区别。
先看两段代码:
JSON对象:
var json1 = { "name": "ant", "age": 20 };
JSON字符串:
var json2 = '{ "name": "ant", "age": 20 }';
//仔细比较会发现,第一个与第二个的区别在于json字符串上面加了单引号
//所以,json字符串是具有JSON格式的字符串,
//与json对象的区别在于JSON对象是一个对象,是可以直接使用的,但是json字符串不可以直接使用
//我们没法直接从JSON字符串中取出数据
当然,把一个JSON字符串转化为JSON对象的方法有很多。以下列举几种。
//以下三种都是把JSON字符串转换为JSON对象
//js支持的转换
var obj = eval(‘(’ + str + ‘)’);
var obj = str.parseJSON();
//json2.js的序列化和反序列化方式
var obj = JSON.parse(str); //反序列化方法,把JSON字符串变成JSON对象
var aToStr=JSON.stringify(a); //序列化方法,把JSON对象转换为JSON字符串
//还可以利用JQuery插件完成转换
$.parseJSON( jsonstr );
4.总结
JSON的概念大概就总结在这里,更重要的是JSON的详细使用,有时间的回试着写写