兩種常用的數據交換格式:XML和JSON


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

3、XML文檔有且只有一個根元素,其他元素都是這個根元素的子元素,根元素完全包括文檔中其他所有的元素。
根元素的起始標記要放在所有其他元素的起始標記之前;根元素的結束標記要放在所有其他元素的結束標記之后。
4、屬性值使用引號。
在HTML代碼里面,屬性值可以加引號,也可以不加。但是XML規定,所有屬性值必須加引號(可以是單引號,也可以是雙引號,建議使用雙引號),否則將被視為錯誤。
5、所有的標記必須有相應的結束標記
在HTML中,標記可以不成對出現,而在XML中,所有標記必須成對出現,有一個開始標記,就必須有一個結束標記,否則將被視為錯誤。
6、所有的空標記也必須被關閉
空標記是指標記對之間沒有內容的標記,比如“<img>”等標記。在XML中,規定所有的標記必須有結束標記。
示例:
<?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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM