AJAX——JSON数据格式
来源:互联网 发布:东方财富网 数据 编辑:程序博客网 时间:2024/06/06 02:53
JSON数据格式,前段时间一直听他们合作的说,但是不知道是什么,这次终于明白了,其实就是一种类似于XML的数据传输格式。下边我从定义,语法,转换为JavaScript对象以及与XML的比较四个方面介绍一下。
一,先看一下定义吧,这是百度百科中的:
JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
二,看一下它的语法使用规则:
首先我们来看一个例子吧,通过这个例子来学习它的各种语法规则吧:
<html><body><h2>通过 JSON 字符串来创建对象</h3><p>First Name: <span id="fname"></span></p> <p>First Name: <span id="fname2"></span></p> <script type="text/javascript">//定义为employees为JSON数据格式的,里边包含了三个对象var employees = [{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName": "Carter" }];employees[1].firstName="刘佳翰";document.getElementById("fname").innerHTML=employees[0].firstName;document.getElementById("fname2").innerHTML=employees[1].firstName;</script></body></html>
语法一:JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值;例如上边的:"firstName":"Bill"
语法二:JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true或 false)
数组(在方括号中)
对象(在花括号中)
null
语法三:JSON对象:
JSON 对象在花括号中书写;
对象可以包含多个名称/值对;
语法四:JSON数组:
JSON 数组在方括号中书写;
数组可包含多个对象;
三,如何将JSON数据格式转换为JavaScript对象呢,我们可以利用内置函数eval().这点在例子中看:
<script type="text/javascript"> //定义json数据格式json1和json2 var json1 = "{'employees':[" + "{'firstName':'Bill','lastName':'Gates' }," + "{'firstName':'George','lastName':'Bush' }," + "{'firstName':'Thomas','lastName':'Carter' }]}"; var json2 = "[1,2,{a:123,b:'String',c:[100,1001]}]"; //这里为什么用("(" + json1 +")"),eval本身的问题。 由于json是以”{}”的方式来开始以及结束的, //在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。 var obj = eval("(" + json1 +")"); var jsonArray = eval(json2); document.getElementById("fname").innerHTML = obj.employees[1].firstName document.getElementById("lname").innerHTML = obj.employees[1].lastName alert(jsonArray[1]);</script>
当然这是我们方便学习在前台写的JSON数据格式,直接调用的,而在实际应用中,我们更多是将后台传输的格式写成JSON的,然后传到前台,再进行各种处理使用。
四,JSON数据格式和XML的比较:
先看一下两个例子吧:
XML表示如下:
<?xml version="1.0" encoding="utf-8"?><country> <name>中国</name> <province> <name>黑龙江</name> <cities> <city>哈尔滨</city> <city>大庆</city> </cities> </province> <province> <name>广东</name> <cities> <city>广州</city> <city>深圳</city> <city>珠海</city> </cities> </province> <province> <name>台湾</name> <cities> <city>台北</city> <city>高雄</city> </cities> </province> <province> <name>新疆</name> <cities> <city>乌鲁木齐</city> </cities> </province></country>
JSON表示如下:
{ "name":"中国", "province":[ { "name":"黑龙江", "cities":{ "city":["哈尔滨","大庆"] } }, { "name":"广东", "cities":{ "city":["广州","深圳","珠海"] } }, { "name":"台湾", "cities":{ "city":["台北","高雄"] } }, { "name":"新疆", "cities":{ "city":["乌鲁木齐"] } }]}
两者相同之处:
- 都是纯文本
- 都具有“自我描述性”(人类可读)
- 都具有层级结构(值中存在值)
- 都可通过 JavaScript 进行解析
- 都可使用 AJAX 进行传输
两者不同之处:
- JSON没有结束标签
- JSON更短
- JSON读写的速度更快
- JSON能够使用内建的 JavaScript eval() 方法进行解析
- JSON使用数组
- JSON不使用保留字
AJAX传输异步数据为什么使用JSON呢?
对于 AJAX应用程序来说,JSON比 XML更快更易使用:
使用 XML
- 读取 XML文档
- 使用 XML DOM来循环遍历文档
- 读取值并存储在变量中
使用 JSON
- 读取 JSON字符串
- 用 eval()处理 JSON字符串
这样就能看出我们利用JSON传输数据的快捷了。
综上为JSON的基础学习,虽然知识点不大,但是还是非常重要的知识,学习好JSON,可以更方便更快捷的为我们的AJAX传输异步数据进行。AJAX的学习中……
- AJAX——JSON数据格式
- AJAX——JSON数据格式
- Ajax(三) — json 数据格式
- php与Ajax(四)—xml与json数据格式
- Ajax数据格式—HTML
- json数据格式+ajax[实例]
- Ajax使用JSON数据格式
- Ajax-03-JSON数据格式
- AJAX数据格式之JSON
- AJAX和数据格式JSON
- 【文本】数据格式——JSON
- 轻量级数据格式——JSON
- 轻量级数据格式——JSON
- [ajax 学习笔记] json数据格式
- JSON & XML——网络数据格式
- JSON & XML——网络数据格式
- jquery实例—json/xml数据格式交互
- 在ajax请求中使用json数据格式
- Spring Security学习
- 信号量 互斥锁 条件变量的区别
- BZOJ 1083 [SCOI2005]繁忙的都市 题解
- Ubuntu下伪分布式模式Hadoop的安装及配置
- cocos2dx 2.2版本以上生成新项目
- AJAX——JSON数据格式
- Valid Parentheses
- ASP截取字符 截取字符之间的字符
- JSP文件下载
- BZOJ 2875 [Noi2012] 随机数生成器 题解与分析
- SHTSC记 13.12.14
- SQL查询数据库名、表名、列名
- 解决:无法检索“mvc4.Models.Movie”的元数据。The connection string in the application's configuration file does no
- JS实践与写博客-序