安卓json編輯器教程:xml轉json工具類

一、引言

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

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

二、JSON

1、JSON 簡介

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

官網: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 是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。

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

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)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。

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

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

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

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

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

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

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

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

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是以 [ ] 表示

三、XML

1、XML簡介

XML 是一種標記語言,也是一種用於在多個應用程序之間共享數據的通信格式,而不是 HTML,它更側重於數據表示。

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

XML 被設計用來描述數據並關注數據是什麼

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

XML 標籤不需要預先定義。在 XML 中,標籤和文檔結構由其作者定義。通常,XML標籤是自解釋的,並描述它們之間的內容。

走進Java接口測試之理解JSON和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 個預定義的實體引用:

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

四、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

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

六、總結

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

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

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

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

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/224673.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:39
下一篇 2024-12-09 14:39

相關推薦

發表回復

登錄後才能評論