Ajax(Asynchronous JavaScript and XML)说到底就是一种浏览器异步读取服务器上XML内容的技术。现在的技术凡是跟XML扯上关系,再加上个概念做幌子,就像金装了一样,拽得不行。门外的人看得很是热闹,门里的人摇摇头不外如是。XML呢,跨平台的新潮语言?其实XML=TXT。XML只是符合很多规范的文本。它本身什么都不是,只是保存字符的文件。而浏览器异步读取的只是服务器上的文本内容,所以在Ajax开发时完全不必拘泥于XML。[版权所有,www.jialing.net]
JSON的来历
XML的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本一样被执行。
示例1:
引用
<HTML>
<HEAD>
<TITLE>eval example 1</TITLE>
</HEAD>
<BODY>
<script>
str = "alert('hello')";
eval(str);
</script>
</BODY>
</HTML>
打开页面会弹出hello窗口。
我们可以在字符串中放任何脚本语句,包括声明语句:
引用
<HTML>
<HEAD>
<TITLE>eval example 2</TITLE>
</HEAD>
<BODY>
<script>
define = "{name:'Michael',email:'17bity@gmail.com'}";
eval("data = "+define);
alert("name:"+data.name);
alert("email:"+data.email);
</script>
</BODY>
</HTML>
如果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高啊!
现在就来告诉你什么是JSON:JavaScript Object Native。我更愿意把它翻译为JavaScript原始对象。比如要从后台载入一些通讯录的信息,如果写成XML,如下:
而写成JSON呢:
简单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解析好的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript原始对象的字符串,用eval方法来将它转为实际的对象,最后通过DHTML更新页面信息。
JSON的格式
JSON的基本格式如下,图片来自json.org:
对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串的定义和C或Java基本一致。
数字的定义也和C或Java基本一致。
JSON VS XML
可读性
JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
解码难度
XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
流行度
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous JavaScript and JSON)了。
附:
JSON.org :
http://www.json.org/
JSON in JavaScript :
http://www.json.org/js.html
JSON: The Fat-Free Alternative to XML :
http://www.json.org/xml.html
JSON and the Dynamic Script Tag: Easy, XML-less Web Services for JavaScript:
http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html
Using JSON (JavaScript Object Notation) with Yahoo! Web Services:
http://developer.yahoo.com/common/json.html
分享到:
相关推荐
Delphi 中使用 Json SuperObject 将数据集与 JSON 对象互转 在 Delphi 中,数据集是最常用的数据存取方式。因此,必须建立 JSON 与 TDataSet 之间的互转关系,实现数据之间的通讯与转换。为此,我们需要使用 Json ...
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,被广泛应用于网络服务间的数据传输以及存储数据。它的设计目标是简洁、易读、易写,同时也方便机器进行解析和生成。JSON 根植于 JavaScript ...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在JavaScript中,我们可以使用`JSON.stringify()`方法将JavaScript对象...
### JSON: JavaScript Object Notation #### 介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人类阅读和编写,并且易于机器解析和生成。JSON基于JavaScript编程语言标准ECMA-262第3版...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,设计用于高效地传输和存储数据,尤其适合服务器与JavaScript之间的交互。它的语法简洁且易于人类阅读和编写,同时也容易让机器解析和生成。JSON格式...
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式,同时也被广泛用于非JavaScript环境。JSON的设计目标是简洁和易于阅读及编写,同时也易于机器解析和生成。它是...
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式,同时也易于人阅读和编写,同时也易于机器解析和生成。JSON被广泛应用于Web服务与客户端之间的数据交互,因为...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。本文将深入探讨一个纯C语言实现的JSON解析器——`...
json_tuple与get_json_object的效率比较(源码剖析) 在数据仓库和大数据处理中,json_tuple和get_json_object都是常用的函数,但是它们之间的效率差别一直是一个热门话题。最近,有人问我,为什么在Hive中取多个...
JSON(JavaScript Object Notation)是一种轻量级、基于文本的、独立于语言的数据交换格式。它的设计目的是使得人类和机器都能容易地读取和编写JSON数据。JSON基于ECMAScript编程语言标准。JSON定义了一组用于数据...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式
json 生成 解析 , ios ,android ,json , object to json
在JavaScript中,对象转换成JSON(JavaScript Object Notation)是一种常见的数据交换格式,它轻量级、易读、易写,被广泛应用于Web应用程序之间传递数据。JSON格式是基于JavaScript的一个子集,但它并不是...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于移动应用开发,尤其是在Android平台上,它使得客户端与服务器之间的数据传输变得简单且高效。Gson是Google提供的一个Java库,专门用来将...
用于JSqlParser4.3版本解析mysql中JSON_OBJECT函数抛出ParseException异常问题,如下: // this is true SELECT JSON_OBJECT(key person value account,key personName value account_name) obj FROM tb_review_...
JSON JavaScript Object Notation 是一种轻量级的数据交换格式 它基于JavaScript(Standard ECMA 262 3rd Edition December 1999)的一个子集 JSON采用完全独立于语言的文本格式 但是也使用了类似于C语言家族的习惯...
在Delphi编程环境中,SuperObject是一个非常流行的JSON库,它为开发者提供了高效、灵活的JSON解析和序列化功能。在Delphi XE10.3版本中,SuperObject的兼容性和支持是至关重要的,因为JSON作为一种轻量级的数据交换...
高效的JSON与Object互转的工具源代码,如果JSON数据未按该工具规定的数据格式转化成对象,将转化成java.util.Map实例。 (比JSON官方的API更适用。支持对象之间的多级引用,支持Map, List等集合。不需要引用其它中间...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输,因为其简洁、易读且易于编程处理。JSON-C是一个针对C语言的JSON库,它提供了在C程序中解析和生成JSON...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在C语言中,由于其没有内置的JSON解析库,因此需要使用第三方库来处理JSON数据。本篇文章将深入探讨...