JSON数据的访问相对于XML要简单很多。可以如同JavaScript对象一样访问JSON数据。例如在上述JSON数据中,我们要访问第一个学生的姓名,只要写:StudentsJSON.student[0].name就可以了。
实例研究
雅虎为我们提供了一个图片搜索Web服务,URL为:http://search.yahooapis.com/ImageSearchService/V1/imageSearch。这个Web服务支持返回JSON格式数据。该Web服务接受的参数为如下
只要动态构建该URL并加入动态创建的script标签中的src属性中即可获得Web服务返回的JSON数据。查询的结果都在ResultSet.Result[0]数组中。当我们构建好查询网页后,可以在本机上用IE或Firefox等浏览器直接打开该网页并测试。
实验结果及比较
可以看到采用动态script标签技术结合JSON数据交换格式的方法使得跨域访问Web服务非常的容易。然而在Web服务中使用JSON数据交换格式相对于XML又有那些优缺点呢?下面从五个方面进行分析。#t#
可读性:JSON和XML的可读性可谓不相上下,JSON采用常见的语法数据结构,XML使用的是规范的标签形式。可扩展性:XML天生有很好的扩展性,而JSON也不逊于XML。
编码难度: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)了。