XML和JSON數(shù)據(jù)格式

      網(wǎng)友投稿 870 2022-05-29

      目錄

      XML

      DTD(文檔類型定義)

      DTD聲明

      DTD實體

      JSON

      使用python解析JSON數(shù)據(jù)

      XML和JSON的區(qū)別

      XML的優(yōu)缺點

      JSON的優(yōu)缺點

      XML和JSON都是web存儲和傳輸過程中數(shù)據(jù)的格式,其中JSON?使用比較廣泛,主要用來前后端交互數(shù)據(jù)。

      XML

      XML(Extensible Markup Language)擴(kuò)展標(biāo)記語言 ,是一種常用的標(biāo)記語言,用于標(biāo)記電子文件使其具有結(jié)構(gòu)性,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言。 XML使用 DTD(document type definition)文檔類型定義來組織數(shù)據(jù);格式統(tǒng)一,跨平臺和語言,早已成為業(yè)界公認(rèn)的標(biāo)準(zhǔn)。XML是標(biāo)準(zhǔn)通用標(biāo)記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。

      #XML聲明

      #文檔類型定義DTD

      ]>

      #文檔元素

      Tove

      Jani

      Reminder

      Hello,word!

      XML文檔的構(gòu)建模塊

      所有的 XML 文檔(以及 HTML 文檔)均由以下簡單的構(gòu)建模塊構(gòu)成:

      元素

      屬性

      實體

      PCDATA

      CDATA

      下面是每個構(gòu)建模塊的簡要描述。

      1:元素

      元素是 XML 以及 HTML 文檔的主要構(gòu)建模塊,元素可包含文本、其他元素或者是空的。

      實例:

      body text in between

      空的 HTML 元素的例子是



      ?以及

      2:屬性

      屬性可提供有關(guān)元素的額外信息

      實例:

      3:實體

      實體是用來定義普通文本的變量。實體引用是對實體的引用。

      4:PCDATA

      PCDATA 的意思是被解析的字符數(shù)據(jù)(parsed character data)。

      PCDATA 是會被解析器解析的文本。這些文本將被解析器檢查實體以及標(biāo)記。

      5:CDATA

      CDATA 的意思是字符數(shù)據(jù)(character data)。

      CDATA 是不會被解析器解析的文本。

      DTD(文檔類型定義)

      DTD(文檔類型定義)的作用是定義 XML 文檔的合法構(gòu)建模塊。

      DTD 可以在 XML 文檔內(nèi)聲明,也可以外部引用。

      DTD聲明

      1:內(nèi)部聲明:

      ]>

      George

      John

      Reminder

      Don't forget the meeting!

      2:外部聲明(引用外部DTD):

      George

      John

      Reminder

      Don't forget the meeting!

      #而http://127.0.0.1/note.dtd的內(nèi)容為

      DTD實體

      DTD實體是用于定義引用普通文本或特殊字符的快捷方式的變量,可分為內(nèi)部實體和外部實體。

      內(nèi)部實體:

      外部實體:

      內(nèi)外部實體又可分為?一般實體?和?參數(shù)實體

      一般實體的聲明語法:? ? ? ? ? ? ? ? ? 引用實體的方式:&實體名;

      參數(shù)實體只能在DTD中使用,參數(shù)實體的聲明格式: ? ? ? ? 引用實體的方式:%實體名;

      %normal4;

      ]>

      &normal;

      而且參數(shù)實體還能嵌套定義,但需要注意的是,內(nèi)層的定義的參數(shù)實體% 需要進(jìn)行HTML轉(zhuǎn)義,否則會出現(xiàn)解析錯誤。

      '>

      ]>

      &normal;

      內(nèi)部實體聲明:

      一般實體

      一般實體

      ]>

      &writer;©right;

      參數(shù)實體

      ]>

      %writer;%copyright;

      外部實體聲明

      一般實體

      ]>

      &writer;©right;

      參數(shù)實體

      ]>

      %writer;%copyright;

      JSON

      JSON全稱JavaScaript對象表示法(JavaScript Object Notation),是存儲和交換文本信息的語法。具有文本量更小、更快和更易解析的特點。Json和HTML不一樣,HTML主要用于顯示數(shù)據(jù),JSON主要用于傳遞數(shù)據(jù),所以一般作為數(shù)據(jù)的查詢接口。

      在 JS 語言中,一切都是對象。因此,任何支持的類型都可以通過 JSON 來表示,例如字符串、數(shù)字、對象、數(shù)組等。對象和數(shù)組是比較特殊且常用的兩種類型:

      對象表示為鍵值對

      數(shù)據(jù)由逗號分隔

      花括號保存對象

      方括號保存數(shù)組

      JSON鍵值對表

      { "name":"xie",

      "sex" :"man",

      "id" : "66" }

      注意: ""和值之間不能有空格,不然取值的時候會出錯

      JSON數(shù)組

      表示一:

      [ { "name":"xie",

      "sex" :"man",

      "id" : "66" },

      { "name":"xiao",

      "sex" :"woman",

      "id" : "88" },

      { "name":"hong",

      "sex" :"woman",

      "id" : "77" }]

      表示二:

      {

      "name":["xie","xiao","hong"],

      "sex" :["man","woman","woman"],

      "id" :["66","88","77"]

      }

      表示三:

      {

      "student":[ { "name":"xie",

      "sex" :"man",

      "id" : "66" },

      { "name":"xiao",

      "sex" :"woman",

      "id" : "88" },

      { "name":"hong",

      "sex" :"woman",

      "id" : "77" }]

      }

      使用python解析JSON數(shù)據(jù)

      對于表示法一和表示法二方法表示的JSON數(shù)據(jù),可以采用下面方法讀取JSON數(shù)據(jù)

      1.json是上面的表示法一 ,2.json是上面的表示法二。可以看出,雖然數(shù)據(jù)是一樣的,但是數(shù)據(jù)讀取出來的排序是不一樣的。

      查詢列的話直接 ['name']? ,查詢行的話data.iloc[0]?表示第一行,或者?data.loc['1']?表示打印出行名1的那行

      而對于表示法三表示的數(shù)據(jù),則可以通過下面的方法讀取。把數(shù)據(jù)讀取在?jsonObject?對象中,然后訪問數(shù)據(jù)的話,一層一層的訪問。

      jsonString是JSON的字符串格式數(shù)據(jù),如果沒有解碼,調(diào)用decode() 函數(shù)即可

      json.loads( jsonString )

      XML和JSON的區(qū)別

      XML的優(yōu)缺點

      XML的優(yōu)點:

      格式統(tǒng)一,符合標(biāo)準(zhǔn);

      容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互,數(shù)據(jù)共享比較方便。

      XML的缺點:

      XML文件龐大,文件格式復(fù)雜,傳輸占帶寬;

      服務(wù)器端和客戶端都需要花費(fèi)大量代碼來解析XML,導(dǎo)致服務(wù)器端和客戶端代碼變得異常復(fù)雜且不易維護(hù);

      客戶端不同瀏覽器之間解析XML的方式不一致,需要重復(fù)編寫很多代碼;

      服務(wù)器端和客戶端解析XML花費(fèi)較多的資源和時間。

      JSON的優(yōu)缺點

      JSON的優(yōu)點:

      數(shù)據(jù)格式比較簡單,易于讀寫,格式都是壓縮的,占用帶寬小;

      易于解析,客戶端JavaScript可以簡單的通過eval()進(jìn)行JSON數(shù)據(jù)的讀取;

      支持多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服務(wù)器端語言,便于服務(wù)器端的解析;

      在PHP世界,已經(jīng)有PHP-JSON和JSON-PHP出現(xiàn)了,偏于PHP序列化后的程序直接調(diào)用,PHP服務(wù)器端的對象、數(shù)組等能直接生成JSON格式,便于客戶端的訪問提取;

      因為JSON格式能直接為服務(wù)器端代碼使用,大大簡化了服務(wù)器端和客戶端的代碼開發(fā)量,且完成任務(wù)不變,并且易于維護(hù)。

      JSON的缺點:

      沒有XML格式這么推廣的深入人心和喜用廣泛,沒有XML那么通用性;

      JSON格式目前在Web Service中推廣還屬于初級階段。

      相關(guān)文章:XXE(XML外部實體注入)

      XXE漏洞利用

      JSON XML

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:快速了解“區(qū)塊鏈”
      下一篇:jupyter notebook使用
      相關(guān)文章
      午夜亚洲www湿好大| 亚洲国产精品日韩在线| 亚洲人妻av伦理| 亚洲狠狠成人综合网| 亚洲午夜免费视频| 久久久久亚洲AV片无码| 亚洲欧洲自拍拍偷午夜色无码| 中文字幕亚洲不卡在线亚瑟| 亚洲人成色77777在线观看大| 国产成人亚洲综合网站不卡| 亚洲videos| 国产成人亚洲综合一区| 亚洲精品无码mⅴ在线观看| 亚洲三级视频在线| 33333在线亚洲| 亚洲精品免费网站| 亚洲日本一线产区和二线 | 亚洲高清国产拍精品26U| 国产亚洲一区二区三区在线观看| 国产偷v国产偷v亚洲高清| 亚洲AV无码国产丝袜在线观看 | 亚洲αⅴ无码乱码在线观看性色| 亚洲熟伦熟女专区hd高清| 亚洲欧好州第一的日产suv| 亚洲中文字幕无码爆乳| 亚洲国产一区二区三区在线观看 | 亚洲线精品一区二区三区| 精品国产亚洲一区二区三区| 亚洲AV无码国产精品麻豆天美| 亚洲Av熟妇高潮30p| 久久亚洲AV无码精品色午夜 | 亚洲av无码不卡私人影院| 亚洲情侣偷拍精品| 亚洲综合伊人久久大杳蕉| 亚洲av无码国产精品夜色午夜| 99亚洲精品高清一二区| 亚洲av无码不卡久久| 亚洲欧洲日产国码久在线| 亚洲av片一区二区三区| 国产成人精品日本亚洲专区61| 亚洲国产成人片在线观看|