xml轉json的兩種方法 JSON轉xml



文章插圖
xml轉json的兩種方法 JSON轉xml

文章插圖
一、引言
現如今 Restful API 越來越流行,而 JSON 和 XML 基本上是兩種主流格式用來交換數據,JSON和 XML 都在 Web上有完善的開放標準(RFC 7159,RFC 4825),本文將帶著大家來了解下這個兩種數據格式 。
二、JSON1、JSON 簡介
JSON 是一種用于在多個應用程序之間共享數據的通信格式 。JSON代表 JavaScript Object Notation 。它基本上是鍵值對的集合 。
【xml轉json的兩種方法 JSON轉xml】官網:http://www.json.org/
在線校驗JSON結構的網站:https://jsonformatter.curiousconcept.com/
2、JSON 數據結構
JSON 有兩種數據結構:
Map,也稱為對象;{….}Array;[……]
也就是說所有的 JSON 對象都是要以這些形式表示;
2.1、Map
簡單的說就是 Java 中的 Map,名稱-值對的形式給出,名稱和值之間用 “:” 隔開,兩個Map之間用“,”隔開,一般表示形式如下:
{'key1':'value1','key2':'value2'}下面的 Object 有 3 個鍵值對
{ "firstName" : "Vijay", "lastName" : "Gupta", "gender" : "Male" }Map 是一個無序的“‘名稱/值’對”集合 。一個對象以“{”(左括號)開始,“}”(右括號)結束 。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔 。
2.2、 Array
就是普通意義上的數組,一般形式如下:
['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的數值非常相似 。除去未曾使用的八進制與十六進制格式 。除去一些編碼細節 。
2.3、嵌套Map
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}}2.4、小結JSON 的數據結構只有兩種可以嵌套表示,比如 Array 中可以嵌套 Object 等Object 是以{}表示,Array是以 [ ] 表示三、XML1、XML簡介
XML 是一種標記語言,也是一種用于在多個應用程序之間共享數據的通信格式,而不是 HTML,它更側重于數據表示 。
XML 被設計用來描述數據并關注數據是什么
XML 標簽不需要預先定義 。在 XML 中,標簽和文檔結構由其作者定義 。通常,XML標簽是自解釋的,并描述它們之間的內容 。
例如:
<section> <title>BOOK</title> <signing><author name="author-1"/><book title="book1" price="$11"/> </signing> <signing><author name="author-2"/><book title="book2" price="$22"/> </signing></section>1.1、XML語法規則必須包含一個根元素,它是所有其他元素的父元素所有 XML 元素都必須具有結束標記XML 標簽區分大小寫XML 元素必須正確嵌套必須引用 XML 屬性值
在線校驗XML結構的網站:https://codebeautify.org/xmlvalidator
1.2、XML中的實體引用
某些字符不能用作 XML 標記內的內容 。因此,我們用特定文本(稱為實體引用)替換這些字符,以便從字面上解析這些字符
在 XML 中有 5 個預定義的實體引用:
四、JSON與XML互轉示例
在線格式互轉: http://www.utilities-online.info/xmltojson/#.XFE-pegzaUk
1、簡單XML
XML格式:
<person> <name>zuozewei</name> <age>20</age></person>JSON格式:
{ "name":"zuozewei", "age":20}2、復雜XML
XML格式:
<section> <title>BOOK</title> <signing><author name="author-1"/><book title="book1" price="$11"/> </signing> <signing><author name="author-2"/><book title="book2" price="$22"/> </signing></section>JSON格式:
{"section": {"title": "BOOK","signing": [{"author": { "-name": "author-1" },"book": {"-title": "book1","-price": "$11"}},{"author": { "-name": "author-2" },"book": {"-title": "book2","-price": "$22"}}]}}五、XML VS JSON
六、總結
XML是一種數據格式,同時它也是一種語言 。它具有許多強大的功能,使其不僅僅是簡單的數據交換數據格式 。例如 XPath,屬性和命名空間,XML 模式和 XSLT 等 。所有這些功能都是 XML 流行的主要原因 。
JSON 并不是為了擁有這樣的功能而設計的,即使它們中的一些現在正試圖在 JSON 中找到它們的位置,例如 JSONPath 。
簡而言之,XML 的目的是文檔標記 。每當文檔標記和元數據是數據的重要組成部分并且不能被刪除時,總是更喜歡使用 XML 。
JSON 的目的是結構化數據交換 。它通過直接表示對象,數組,數字,字符串和布爾值來實現此目的 。如果不要求元數據和文檔標記,始終使用 JSON 。