iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Software Development

Spring Boot 零基礎入門系列 第 16

Spring Boot 零基礎入門 (16) - Json 格式介紹

  • 分享至 

  • xImage
  •  

賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架

哈囉大家好,我是古古

在上一篇文章中,我們有介紹了要如何使用 @RequestMapping,將 url 路徑對應到 Spring Boot 的程式上

那麼接著這篇文章,我們會來介紹要如何透過 Json,來結構化的呈現返回的數據

回顧:到目前為止的返回數據


在上一篇文章中,我們最後有加了一個新的 product 方法,並且為他添加對應的 url 路徑 /product,程式如下:

https://ithelp.ithome.com.tw/upload/images/20230930/20151036Q4d4XIFboJ.png

但是目前在這個 product 方法的返回值中,是使用「一個字串」來表達「第一個是蘋果、第二個是橘子」的資訊,而這樣子的表達方式,其實是非常人類語言的,對於電腦的程式語言來說很難辨別

因此就有人發明了一個格式,能夠更有效率的去呈現數據,而這個格式就是 json

什麼是 Json?


Json 是一種格式,用途是更簡單、更直覺的去呈現數據,讓我們易於讀寫,因此當我們使用了 json 之後,就可以在傳遞數據時更有效率,就不用像上面一樣直接用一串文字,複雜的去形容數據了

Json 格式是一個簡單、但是使用頻率非常非常非常高的一項技術,基本上只要涉及到前後端的溝通,有很大一部分都是使用 Json 格式來傳遞數據的,因此 Json 格式可以說是非常重要的一項技術

舉例來說,當我們使用了 Json 之後,就可以將「我的學號是 123,名字是 Judy」,改成像是下面的 Json 格式來呈現了!

{
    "id": 123,
    "name": "Judy"
}

https://ithelp.ithome.com.tw/upload/images/20230930/20151036t4btNH1Ehs.png

Json 的格式


在 Json 格式中,可以由一組大括號 {} 來表示一個 object,譬如說當我們寫上下面這一段 Json 格式的程式時,就表示我們 new 出了一個 object

{
   //....
}

Key 和 Value 的概念

寫好一對大括號之後,在大括號 {} 裡面,我們是可以去定義「key 和 value 的配對」,這個 key 的地位就等同於是去宣告一個 Java 中的變數,而 value 就是去設定這個變數的值

舉例來說的話,假設我們在大括號裡面加上一行程式 "id": 123,就表示我們去創建了一組 key-value 的配對,其中 key 就是 id,表示我們宣告了一個變數他的名字叫做 id,然後這個 id 的值,就是冒號右邊的 123

所以在這行程式 "id": 123,他的意思就是「有一個變數 id,他的值為 123」,而這個其實就是一對 key-value,其中 key 為 id,並且 value 為 123

{
    "id": 123
}

所以在 Json 裡面,是可以透過 key-value 的配對格式寫法,不斷的在下面去新增許多組 key-value 出來的

新增多組 Key-Value

延續上面的例子,我們現在已經有一組 key-value "id": 123 了,去表達「我的 id 的值為 123」的資訊

如果這時候我們想要再新增一組 key-value,用來表達「我的名字為 Judy」的話,那我們就可以 先在最後面加上一個逗點,然後換行,接著輸入 "name": "Judy",在下面去創建第二組 key-value 的配對

{
    "id": 123,
    "name": "Judy"
}

所以在上面這個寫法中,"name": "Judy" 這對 key-value,他們的 key 就是 name,表示我們創建了一個變數叫做 name,然後這個 name 變數的值就是 Judy 這樣,因此我們就可以用這一行程式,去表達「我的名字為 Judy」的意義

因此當我們這樣寫之後,在這整個 json 裡面,就表達了兩個資訊,分別是「我的 id 為 123」以及「我的名字為 Judy」了!

所以透過 json 格式的寫法,就可以用更簡單的結構去傳遞數據,因此就可以簡化開發,進而提升前後端溝通的效率了!

使用 Json 的注意事項

在使用 Json 時,有一個很重要的注意事項,就是**「在 Json 中的所有 key,都必須要加上雙引號 " " 來框住才可以」**

舉上面所寫的 json 格式來說的話:

{
    "id": 123,
    "name": "Judy"
}

idname 這兩個 key 的前後,我們都有去加上一對雙引號,把這個 key 給框起來,這個是在撰寫 Json 格式中,一定要注意的細節!

所以如果沒有正確的為 key 加上雙引號的話,就會是一個錯誤的 Json 格式,因此大家在撰寫的時候,建議要多加小心這個部分

Json 所支援的值


在 Json 的格式中,我們是可以透過 key-value 的配對,去創建一組組的變數和他對應的值的,而在這些值中,Json 支援以下幾種類型,分別是:

  • 整數
    • "id": 123
  • 浮點數
    • "score": 1.111
  • 字串
    • "name": "Hello"
  • Boolean
    • "option": true
  • List
    • "list": [1, 2, 3]

因此大家在使用上,就可以根據不同的需求,為 key 去設定不同類型的 value 了

補充:Json 中的 List 概念

在 Json 中,value 除了可以使用基本類型的整數、浮點數、字串....等等之外,也是可以設定成是一個 List 的

只需要在 value 的地方先寫上一對中括號 [],就表示創建了一個 list 出來,因此我們就可以在這個 list 裡面,去填上我們想要放的內容了,這部分的概念,就和 Java 中的 List 是一模一樣的(因此大家只要把它當成 Java 中的 list 來想就好)

舉例來說,當我們寫上下面這個 Json 格式時:

{
    "appleList": ["apple1", "apple2", "apple3"]
}

就表示我們去定義了一個變數 key 叫做 appleList,而他裡面所儲存的值,就會是一個 List,並且在這個 List 裡面,就會存放了 3 個值,分別是 apple1、apple2、以及 apple3 了

所以,讓我們回到最一開始的問題


了解了 Json 的格式怎麼使用之後,我們就可以回到最一開始的問題,即是把 MyController 中所返回的「第一個是蘋果、第二個是橘子」的字串,改成是使用 Json 的格式來傳遞

因此我們就可以改寫成是下面這個樣子,就可以使用 Json 的格式,來表達「第一個是蘋果、第二個是橘子」的意義了!

{
    "productList": ["蘋果", "橘子"]
}

https://ithelp.ithome.com.tw/upload/images/20230930/201510360znc6spsPX.png

總結


這篇文章先介紹了什麼是 Json,並且也介紹了 Json 格式的 key-value 的寫法,以及 Json 的 value 所支援的值

了解要怎麼使用 Json 格式來改寫返回值之後,那麼下一篇文章,我們就可以回到 Spring Boot 程式,來改寫一下 MyController,將 MyController 所回傳的值改成是 Json 格式了,那我們就下一篇文章見啦!

相關連結



上一篇
Spring Boot 零基礎入門 (15) - Url 路徑對應 - @RequestMapping
下一篇
Spring Boot 零基礎入門 (17) - 返回值改成 Json 格式 - @RestController
系列文
Spring Boot 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言