技術交流

JSON 語言 麻雀雖小五臟俱全

羅祖祈 羅祖祈

資通電腦 uPKI 運用 JSON 架構進行傳輸,研發出更彈性便利的資料格式與系統,能協助企業保密與防護資料的傳輸,安全的交換資料。

JSON (JavaScript Object Notation)是一個資料交換語言,在服務導向架構(SOA;Service-Oriented Architecture)當道的網路世界,輕巧簡便的特性使得大多數的 Web API 都以此作為資料交換的格式。

JSON 以純文字的方式描述一組結構簡單的資料,雖然結構簡單但也足夠絕大部分的系統使用。由於 JSON 透過精簡的格式來描述各種資料,因此各種程式語言都可容易且有效率的處理這些資料。且相容性高、格式易懂、方便閱讀修改,有效降低資料在跨系統交換時的開發成本。

JSON最基礎的資料單元就是 Name:Value 的對應。例如我們利用 JSON 來描述一本圖書的資料:


{
  "BookName":"我是書名",
  "ISBN":"9999999999",
  "Author":"Alice",
  "Price":220
}

{ } 表示一個 JSON 物件的起始和結束。物件裡所有的資料都是以 Name:Value 的方式表示。這個 JSON 物件中包含兩種資料型態,字串和數字。

  • 數字(整數或浮點數)
  • 字串
  • 布林函數(boolean)
  • 陣列 [ ]
  • 物件 { }
  • NULL

在 Name-Value 裡的 Name 必須是字串型態,如範例中的 “Bookname”、“ISBN”、“Author”、“Price”等。在字串資料中是可以使用中文字的,但必須注意的是資料編碼請用UTF-8以確保資料的可攜性。

在 JSON 物件裡可以使用陣列,例如上述圖書資料中當作者有多人時,即可用陣列型態表示。上述的 JSON 物件可能會顯示如下:


{
  "BookName": "我是書名",
  "ISBN": "9999999999",
  "Author": ["Alice", "Blob", "Carry" ],
  "Price": 220
}

JSON 裡的資料也可以是 JSON 物件,例如我們要一份描述多本圖書的圖書清冊:


{
  "BookList":[
    {
      "BookName": "我是書名1",
      "ISBN": "9999999991",
      "Author": ["Alice","Blob","Carry"],
      "Price": 220
    },
    {
      "BookName": "我是書名2",
      "ISBN": "9999999992",
      "Author": "Alan",
      "Price": 300
    }
  ]
}

相較於另一個常用來描述資料的 XML(Extensible Markup Language),JSON 雖然不若 XML 對資料描述的嚴謹與擴充性,但使用上卻顯得更加輕巧方便,這就是 JSON 更適合運用於網路資料傳輸上的關鍵因素。因此,uPKI 有效提高各種資料格式高相容性,以最精簡的方式提供最大的效益,是企業邁向嚴謹資安的最佳選擇!