不同編程語言之間的數據傳輸,需要一種通用的數據交換格式,它需要簡潔、易於數據儲存、快速讀取,且獨立於各種編程語言。我們往往傳輸的是文本文件,比如我們都知道的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)
