不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁、易于数据储存、快速读取,且独立于各种编程语言。我们往往传输的是文本文件,比如我们都知道的csv(comma seperated values)格式。
而在互联网上,传输数据往往有很多层次的结构,并非矩阵形态(m×n)那么简单。常见的有xml、json、yaml等等。其中,yaml是"yaml ain't markup language"的递归缩写,即各单词首字母组合恰为第一个词;而yaml也可理解成yet another markup language。
而感觉离我们最近的主要还是xml和json,并且是常常遇到;yaml暂时没有接触。故本文对此二者做个小的总结。
(一)XML
Extensible Markup Language,可扩展标记语言。
XML最初的设计目的是为了EDI(Electronic Data Interchange,电子数据交换)。
早在Web诞生以前,SGML(Standard Generalized Markup Language,标准通用标记语言)就被发明。然而它太复杂,且不适用于Web,因此1989年HTML(Hyper Text Markup Language,超文本标记语言)诞生了。而HTML也存在着无法描述数据、可读性差、搜索时间长等缺陷。1998年,以前两者为前驱,W3c(万维网联盟)发布了XML的1.0标准,标志着XML的诞生。
主要语法规则:
1、必须有声明语句。
2、大小写有区别。例如“<P>”和“<p>”是不同的标记。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="osg.AndroidExample"
android:installLocation="preferExternal"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
<uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requierements (2.0) -->
<uses-permission android:name="android.permission.INTERNET"/> <application android:label="@string/app_name" android:icon="@drawable/osg">
<activity android:name=".osgViewer"
android:label="@string/app_name" android:screenOrientation="landscape"> <!-- Force screen to landscape -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </application>
</manifest>
(二)JSON
JavaScript Object Notation,JavaScript对象符号。
JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,于2001年开始推广。
主要语法规则:
1.使用六个基本符号(允许前后有空格出现):数组'['和']'、对象'{'和'}'、命名分隔符':'、值分隔符','。
2.值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。
{
"people": [{
"firstName": "Brett",
"lastName": "McLaughlin"
},
{
"firstName": "Jason",
"lastName": "Hunter"
}
]
}
这里推荐在线的XML和JSON解析器,方便数据格式转化和查看。
解析XML : https://c.runoob.com/front-end/710
解析JSON: https://www.bejson.com/
参考资料:
1. https://baike.baidu.com/item/%E5%8F%AF%E6%89%A9%E5%B1%95%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80/2885849?fromtitle=xml&fromid=86251&fr=aladdin (百度百科XML)
2. https://baike.baidu.com/item/JSON (百度百科JSON)