Presentation is loading. Please wait.

Presentation is loading. Please wait.

中篇:第四章 Web脚本与GeoJSON 尹章才.

Similar presentations


Presentation on theme: "中篇:第四章 Web脚本与GeoJSON 尹章才."— Presentation transcript:

1 中篇:第四章 Web脚本与GeoJSON 尹章才

2 4.3 JSON JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,以文字为基础,且易于人阅读和编写,同时也易于机器解析和生成。 JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的一个子集,所以可以在JavaScript以eval()函数(javascript通过eval()调用解释器)读入。

3 一、JSON概述 不过这并不代表JSON无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有JSON库。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

4 JSON 已经是 JavaScript 标准的一部分。目前,主流的浏览器对 JSON 支持都非常完善。
应用 JSON,我们可以从 XML 的解析中摆脱出来,对那些应用 Ajax 的 Web 2.0 网站来说,JSON 确实是目前最灵活的轻量级方案。

5 二、JSON结构 JSON建构于两种结构:一是“名称/值”对的集合;另一是值的有序列表(An ordered list of values),在大部分语言中,它被理解为数组。

6 一个JSON的例子如下( var book ={ "bookName":JSON "bookPublic":WHU.PUBLIC, "bookAuthor":Faitle }

7 对应的XML表示为 <book> <bookName>JSON</bookName> <bookPublic>WHU.PUBLIC</bookPublic> <bookAuthor>Faitle</bookAuthor> </book>

8 JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web 客户机传递给服务器端程序。

9 三、JSON和XML的比较 (http://baike.baidu.com/view/136475.htm)
尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。

10 实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 Ajax 应用甚至直接返回 HTML 片段来构建动态 Web 页面。
和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。 现在, JSON 为 Web 应用开发者提供了另一种数据交换格式。同 XML 或 HTML 片段相比,JSON 提供了更好的简单性和灵活性。

11 1)可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
编码的可读性,XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读。

12 2)可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势。

13 3)编码难度 XML有丰富的编码工具,JSON也有提供的工具。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的XML文档和JSON字符串,不过,XML文档要多很多结构上的字符。 编码的手写难度来说,XML还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而XML却包含很多重复的标记字符。

14 4)解码难度 XML的解析方式有两种:一是通过文档模型解析,另一是遍历节点。JSON也同样如此。如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。 如果你是纯粹的前台开发人员,一定会非常喜欢JSON。但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟XML才是真正的结构化标记语言,用于进行数据传递。

15 而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。
但是这样也不影响众多前台开发人员选择JSON。因为json.js中的toJSONString()就可以看到JSON的字符串结构。当然不是使用这个字符串,这样仍旧是噩梦。常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作JSON。

16 以上是在Javascript中仅对于数据传递的XML与JSON的解析。在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于XML。如果JSON中存储Javascript复合对象,而且不知道其结构的话,解析JSON将会很困难。

17 四、JSON优缺点 1)优点: (1)数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。
(2)易于解析这种语言,客户端JavaScript可以简单的通过eval()进行JSON数据的读取。

18 (3)支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析 (4)在PHP世界,已经有PHP-JSON和JSON-PHP出现了,便于PHP序列化后的程序直接调用。PHP服务器端的对象、数组等能够直接生成JSON格式,便于客户端的访问提取。另外PHP的PEAR类已经提出了支持。

19 2)缺点: (1)没有XML格式这么推广的深入人心和使用广泛,没有XML那么通用性。 (2)JSON格式目前在Web Service中推广还属于初级阶段。

20 4.4 GeoJSON 传统的WFS请求以各种XML的形式返回结果,但是解析XML并不是一种高效的方式。而GeoJSON的目的就是将JSON方式的数据传输引入WFS查询(龙岳红 2008)。

21 GeoJSON是一个用于编码各种地理数据结构的开放格式,其格式规范于2008年完成。事实上,每个GeoJSON数据结构也是一个JSON对象,因而JSON工具也能用于处理GeoJSON数据( GeoJSON支持的空间数据格式包括点、多边形、多多边形、要素、几何集和边界盒。

22

23

24 目前,支持CeoJSON的制图和GIS软件较多,包括Yahoo
目前,支持CeoJSON的制图和GIS软件较多,包括Yahoo!和Google API服务。在地图Mashup开发中,大多数地图制图API均采用Javascript形式提供,因此都能够支持GeoJSON格式的数据。对于有很好的Javascrit语言基础的开发者来说,CeoJSON的使用也很方便(龙岳红 2008)。

25 问 题?


Download ppt "中篇:第四章 Web脚本与GeoJSON 尹章才."

Similar presentations


Ads by Google