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

Slides:



Advertisements
Similar presentations
●公司簡介. ●公司組織 行銷 企劃部 行銷 企劃部 研發 設計部 研發 設計部 視覺 設計部 視覺 設計部 媒體 製作部 媒體 製作部 行動 裝置部 行動 裝置部 執行長 總經理 管理部 本公司組織人力配置除董事長、執行長、總經理外,共 有六大部門,分別為研發部 6 人、管理部 4 人、視覺設計部.
Advertisements

开始 周海 2012 级中软定制专业方向说明. 三个方向 Java 与移动互联.NET 软件开发 嵌入式开发.
1 网站设计理念 大连理工大学创新实验学院 优秀网站展示 - LAMP 类网站
白玉苦瓜 余光中.
ASP .NET 程序设计(C#版) 第二版 机械工业出版社同名教材 配套电子教案
保良局何壽南小學 使用牙膏對我們生活的影響 六年級專題報告 姓名﹕李燊樺 班別﹕6B 日期﹕
中國歷史人物武則天 G組組員 韋紫恩, 余詩琪 蔡煦齡, 黃榮紳,.
Exmobijs框架 场景介绍 使用方法 常用类介绍.
Tool Command Language --11级ACM班 金天行.
Web程序设计基础 太原理工大学 计算机科学与技术学院 林福平 求实创新
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
移动开发的灵便迭代之道 黄凯.
mashup 林維甫 郭家伶 吳佩珊 蔡小倩 楊士毅 曾仕豪 Marshup起源 何謂Mashup Mashup類型 Mashup架構
北京移动(中国移动的子公司)是中国主要的无线运营商之一。中国移动做为无线市场的开拓者,拥有中国70%的无线通信市场,也是世界上第二大的无线提供商,北京移动拥有上亿的手机用户,支持60多个国家的漫游业务。 为北京移动创造的价值 … 优秀的性能,支持了庞大的用户群 标准化了系统接口 加强了系统的灵活性.
Hadoop I/O By ShiChaojie.
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
学习前的准备工作 讲师:burning.
R in Enterprise Environment 企业环境中的R
存储系统.
SQL Injection.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
第17章 网站发布.
What have we learned?.
数据挖掘工具性能比较.
程序语言的现在和未来 孙志岗.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
A New Kind of JavaScript Library
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
编程作业3:网页正文抽取 (10分).
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
/ 第5讲:数据交互开发 冯顺磊 /
第四章 团队音乐会序幕: 团队协作平台的快速创建
網站HOLMES DATA監測代碼.
VisComposer 2019/4/17.
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
实验七 安全FTP服务器实验 2019/4/28.
用计算器开方.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
關鍵字廣告工具、 搜尋引擎最佳化、 損益表實例
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
解决“最后1公里”问题.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
Javascript 基础 面向非JS语言的开发人员.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
WEB321 使用ASP.NET2.0快速开发电子商务网站
閱讀調查- 書本不敵網路魅力 102王婉汝、莊雅鈞.
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
W3C标准网页制作 主讲教师:张 涛.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
数据表示 第 2 讲.
1 Web基础知识 1.1 HTTP协议 1.2 Web服务器和浏览器 1.3 C/S模式与B/S模式 1.4 Web的访问原理
Presentation transcript:

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

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

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

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

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

一个JSON的例子如下(http://www.hudong.com/wiki/JSON): var book ={ "bookName":JSON "bookPublic":WHU.PUBLIC, "bookAuthor":Faitle }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GeoJSON是一个用于编码各种地理数据结构的开放格式,其格式规范于2008年完成。事实上,每个GeoJSON数据结构也是一个JSON对象,因而JSON工具也能用于处理GeoJSON数据(http://en.wikipedia.org/wiki/GeoJSON)。GeoJSON保留了JSON的结构,但增加了一些约束条件(http://chuo.me/2009/03/about-geojson/),主要是空间几何方面。 GeoJSON支持的空间数据格式包括点、多边形、多多边形、要素、几何集和边界盒。

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

问 题?