走進Java接口測試之理解JSON和XML基礎
引言
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簡介
必須包含一個根元素,它是所有其他元素的父元素
所有 XML 元素都必須具有結束標記
XML 標簽區分大小寫
XML 元素必須正確嵌套
必須引用 XML 屬性值
在線校驗XML結構的網站:https://codebeautify.org/xmlvalidator
某些字符不能用作 XML 標記內的內容。因此,我們用特定文本(稱為實體引用)替換這些字符,以便從字面上解析這些字符
在 XML 中有 5 個預定義的實體引用:
JSON與XML互轉示例
在線格式互轉:
http://www.utilities-online.info/xmltojson/#.XFE-pegzaUk
簡單XML
XML格式:
JSON格式:
{ "name":"zuozewei", "age":20 }
復雜XML
XML格式:
JSON格式:
{ "section": { "title": "BOOK", "signing": [ { "author": { "-name": "author-1" }, "book": { "-title": "book1", "-price": "" } }, { "author": { "-name": "author-2" }, "book": { "-title": "book2", "-price": "" } } ] } }
XML VS JSON
總結
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小時內刪除侵權內容。