写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗。但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个人的一个学习总结。希望那些跟我一样,在实验室闷头搞科研,一出门实习完全一头雾水的同僚们可以借鉴:好多东西并没有我们想想的那么复杂,只要你肯学,迈出第一步,你就成功了一大半。与大家共勉!
好了,想花时间接着往下看的博友们,我们可以步入正题了。
1. HTML语言首先,先简单的提及一下超文本标记语言HTML(HyperText Markup Language)。对于HTML语言,大家一定不陌生,没吃过猪肉,可总见过猪跑吧。
简单来说,超文本标记语言HTML是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。“标记”是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。有关HTML的具体细节就不具体介绍了,只要记住以下三点就可以了:
2. XML语言扩展标记语言 XML(Extensible Markup Language) 的规范定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。XML是独立于软件和硬件的信息传输工具。 目前,XML在Web中起到的作用不会亚于一直作为 Web 基石的 HTML,XML无所不在。XML是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。
2.1 XML的特点关于XML,记住以下几点就行了:
2.2 XML与HTML的主要差异:误区:XML不是用来取代HTML的,它是HTML的补充。
2.3 XML允许自定义标签XML被设计用来结构化、存储以及传输信息,它没有预定义的标签。在HTML中使用的标签(以及HTML的结构)是预定义的。HTML文档只使用在HTML标准中定义过的标签(比如<p>,<h1> 等等)。XML允许创作者定义自己的标签和自己的文档结构。
举个简单的例子,比如John写给George的便签,存储为XML:
GeorgeJohnReminderDon't forget the meeting!上面的这条便签具有自我描述性。它拥有标题以及留言,同时包含了发送者和接受者的信息。但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在XML标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
2.4 XML的解析XML目前设计了两种解析方式:DOM和 SAX。
1)DOM:把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存。
2)SAX:不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。
有关XML的详细的语法和解析介绍,可以转至下面的链接:10分钟掌握XML、JSON及其解析
3. JSON语言JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
3.1 JSON的语法规则JSON 语法是 JavaScript 对象表示语法的子集。
3)JSON有两种数据结构:
当然,你还可以表示的更复杂一些,例如这样:
{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }