走進Java接口測試之理解JSON和XML基礎

      網友投稿 909 2022-05-29

      引言

      JSON

      JSON 簡介

      JSON 數據結構

      Map

      Array

      嵌套Map

      小結

      引言

      JSON

      JSON 簡介

      JSON 數據結構

      Map

      Array

      嵌套Map

      小結

      XML

      XML簡介

      XML語法規則

      XML中的實體引用

      JSON與XML互轉示例

      簡單XML

      復雜XML

      XML VS JSON

      總結

      引言

      現如今 Restful API 越來越流行,而 JSON 和 XML 基本上是兩種主流格式用來交換數據,JSON和 XML 都在 Web上有完善的開放標準(RFC 7159,RFC 4825),本文將帶著大家來了解下這個兩種數據格式。

      JSON

      JSON 簡介

      JSON 是一種用于在多個應用程序之間共享數據的通信格式。JSON代表 JavaScript Object Notation。它基本上是鍵值對的集合。

      官網:http://www.json.org/

      在線校驗JSON結構的網站:https://jsonformatter.curiousconcept.com/

      JSON 數據結構

      JSON 有兩種數據結構:

      Map,也稱為對象;{…}

      Array;[…]

      也就是說所有的 JSON 對象都是要以這些形式表示;

      簡單的說就是 Java 中的 Map,名稱-值對的形式給出,名稱和值之間用 “:” 隔開,兩個Map之間用“,”隔開,一般表示形式如下:

      {'key1':'value1','key2':'value2'}

      下面的 Object 有 3 個鍵值對

      { "firstName" : "Vijay", "lastName" : "Gupta", "gender" : "Male" }

      Map 是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。

      就是普通意義上的數組,一般形式如下:

      ['arr1','arr2','arr3'];

      下面的數組有 3 個JSON 對象,每個對象有 3 個鍵值對

      [ {"name" : "Potato","stock" : "10", "unit" : "kg"}, {"name" : "Tomato","stock" : "32", "unit" : "kg"}, {"name" : "Onion","stock" : "27", "unit" : "kg"} ]

      數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。

      圖中的值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。

      字符串(string)是由雙引號包圍的任意數量 Unicode 字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。

      字符串(string)與C或者Java的字符串非常相似。

      數值(number)也與C或者Java的數值非常相似。除去未曾使用的八進制與十六進制格式。除去一些編碼細節。

      JSON對象也可以嵌套:

      { "id": "0001", "type": "donut", "name": "Cake", "image": { "url": "images/0001.jpg", "width": 200, "height": 200}, "thumbnail": {"url": "images/thumbnails/0001.jpg", "width": 32, "height": 32} }

      JSON 的數據結構只有兩種

      可以嵌套表示,比如 Array 中可以嵌套 Object 等

      Object 是以{}表示,Array是以 [ ] 表示

      XML

      XML簡介

      BOOK

      必須包含一個根元素,它是所有其他元素的父元素

      所有 XML 元素都必須具有結束標記

      XML 標簽區分大小寫

      XML 元素必須正確嵌套

      必須引用 XML 屬性值

      在線校驗XML結構的網站:https://codebeautify.org/xmlvalidator

      某些字符不能用作 XML 標記內的內容。因此,我們用特定文本(稱為實體引用)替換這些字符,以便從字面上解析這些字符

      在 XML 中有 5 個預定義的實體引用:

      JSON與XML互轉示例

      在線格式互轉:

      http://www.utilities-online.info/xmltojson/#.XFE-pegzaUk

      簡單XML

      XML格式:

      zuozewei 20

      JSON格式:

      { "name":"zuozewei", "age":20 }

      復雜XML

      XML格式:

      BOOK

      JSON格式:

      { "section": { "title": "BOOK", "signing": [ { "author": { "-name": "author-1" }, "book": { "-title": "book1", "-price": "" } }, { "author": { "-name": "author-2" }, "book": { "-title": "book2", "-price": "" } } ] } }

      XML VS JSON

      走進Java接口測試之理解JSON和XML基礎

      總結

      XML是一種數據格式,同時它也是一種語言。它具有許多強大的功能,使其不僅僅是簡單的數據交換數據格式。例如 XPath,屬性和命名空間,XML 模式和 XSLT 等。所有這些功能都是 XML 流行的主要原因。

      JSON 并不是為了擁有這樣的功能而設計的,即使它們中的一些現在正試圖在 JSON 中找到它們的位置,例如 JSONPath。

      簡而言之,XML 的目的是文檔標記。每當文檔標記和元數據是數據的重要組成部分并且不能被刪除時,總是更喜歡使用 XML。

      JSON 的目的是結構化數據交換。它通過直接表示對象,數組,數字,字符串和布爾值來實現此目的。如果不要求元數據和文檔標記,始終使用 JSON。

      參考資料:

      [1] https://www.json.org/json-zh.html

      [2] https://blog.csdn.net/xiazdong/article/details/7059573

      Java JSON XML 彈性文件服務

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:開發者如何學好 MongoDB
      下一篇:代碼優先還是設計優先?說說API開發技術(一)
      相關文章
      国产天堂亚洲精品| 国产精品亚洲片在线va| 亚洲熟伦熟女专区hd高清| 亚洲国产精品成人久久久| 亚洲自偷精品视频自拍| 亚洲人成电影在线天堂| 亚洲AV无码1区2区久久| 亚洲国产精品无码久久久不卡| 亚洲最大激情中文字幕| 亚洲中文字幕久久精品无码APP| 国产性爱在线观看亚洲黄色一级片| 亚洲男人第一无码aⅴ网站| 亚洲精品无码永久在线观看| 亚洲精品视频免费| 国产91精品一区二区麻豆亚洲 | 久久久久亚洲AV无码专区首JN| 亚洲尹人九九大色香蕉网站| 亚洲国产天堂在线观看| 亚洲最新永久在线观看| 亚洲黄色三级网站| 亚洲国产成人九九综合| 亚洲视频无码高清在线| 亚洲久热无码av中文字幕| 亚洲精品无码少妇30P| 亚洲а∨精品天堂在线| 亚洲精品岛国片在线观看| 国产亚洲色视频在线| 亚洲乱码无码永久不卡在线| 日本亚洲欧洲免费天堂午夜看片女人员| 国产亚洲av片在线观看16女人| 亚洲成在人天堂一区二区| 亚洲精品熟女国产| 亚洲精品免费网站| 老牛精品亚洲成av人片| 亚洲国产中文字幕在线观看| 亚洲精品无码久久千人斩| 亚洲国产精品久久久久婷婷老年| 亚洲第一香蕉视频| 亚洲国产系列一区二区三区 | 亚洲Av永久无码精品三区在线| 亚洲人成网址在线观看 |