iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0

Day 19-JSON格式

在讓機器人變聰明之前,得先知道讓機器人變聰明的方法!

所以先讓我們來了解一下什麼是JSON格式吧。

在了解JSON格式時,我找了不少資料,其中這篇文章我認為寫得特別好,以下內文的架構是參考這篇文章下去寫的,如果有興趣了解更多的也可以點選以下這篇文章。
瞭解JSON格式

那什麼是JSON呢?

JSON(JavaScript Object Notation) 是個以純文字為基礎去將結構化資料 (structured data) 呈現為 JavaScript 物件的標準格式。

JSON 的優點:

  • 相容性高
  • 資料格式簡單,客戶端容易讀取以及修改
  • 支援許多資料格式 (number,string,booleans,nulls,array,associative array)
  • 支援多種語言(包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等伺服器端語言)

JSON的應用:

JSON 常用在web開發,可以用在網頁程式從伺服器端傳送資料給瀏覽器,
也可以透過POST 或 GET方法將 JSON 資料傳到伺服器端。
NoSQL資料庫也是利用JSON作為資料儲存的格式。

JSON格式:

接著就正式進到JSON字串的寫法啦,
其實只要記住以下幾個規則就很好懂了:
陣列(array)用 [ ]
物件(object)用 { }
Key-value方式儲存資料

官方的網站有幫助理解的迷宮圖。
https://www.json.org/json-en.html

網路上也有許多JSON的線上格式化網站,可以幫助理解JSON格式。
https://jsonformatter.org/json-editor

OK,接著馬上來舉個例子吧。

物件

{"subject":"English","score":90}

https://ithelp.ithome.com.tw/upload/images/20200929/20130283jn2O83RdKa.png

以大括號包住,一個key(subject.score)會對應一個value(English.90)。
要特別注意的是key值一定要是字串,因此需要加上””,否則會出錯。

https://ithelp.ithome.com.tw/upload/images/20200929/20130283e4BjpGzp9a.png

陣列

陣列則是以中括號[]包住,中間一樣用逗號,隔開

[0,1,2,3,4]

https://ithelp.ithome.com.tw/upload/images/20200929/2013028319P7dGGkoN.png

https://ithelp.ithome.com.tw/upload/images/20200929/201302831qHuJS5Iar.png

Value值不論放什麼都可以。

https://ithelp.ithome.com.tw/upload/images/20200929/20130283dw1SZwvZCj.png

綜合應用

接著來看一個綜合的範例:

[{"name":"Ikusen","lastname":"To","report":[{"subject":"English","score":90},{"subject":"Math","score":70}]},{"name":"Tom","lastname":"Hank","report":[{"subject":"English","score":80},{"subject":"Math","score":90}]}]

https://ithelp.ithome.com.tw/upload/images/20200929/201302833mkK3Cy8ct.png

看起來很複雜其實並不會,我們可以把這個成績單拆開來看。
從最外面開始看,整個成績單包含兩個陣列。

[{學生A},{學生B}]

學生資料裡包含姓名跟成績。

{"name":"Ikusen","lastname":"To","report":成績資料}

成績資料包含兩筆,因此用陣列包起來。

[{成績A},{成績B}]

成績資料也是物件。

[{"subject":"English","score":90},{"subject":"Math","score":70}]

全部組幾來就是上面看到的那樣。

XML格式

轉成XML則像這樣:

<?xml version="1.0" encoding="UTF-8" ?>
	<Data>
		<Student>
			<name>Ikusen</name>
			<lastname>To</lastname>
			<report>
				<subject>English</subject>
				<score>90</score>
			</report>
			<report>
				<subject>Math</subject>
				<score>70</score>
			</report>
		</Student>
		<Student>
			<name>Tom</name>
			<lastname>Hank</lastname>
			<report>
				<subject>English</subject>
				<score>80</score>
			</report>
			<report>
				<subject>Math</subject>
				<score>90</score>
			</report>
		</Student>
	</Data>

這樣看下來JSON確實比較簡潔,也比較容易懂,在了解了JSON的基本格式後,對之後寫程式上理解會有很大的幫助,在下一篇我們馬上來寫一些有趣的機器人功能。

參考資料

https://j796160836.pixnet.net/blog/post/30530326-%E7%9E%AD%E8%A7%A3json%E6%A0%BC%E5%BC%8F


上一篇
Day 18-Telegram Bot:API & 儲存接收資料進Google Sheets
下一篇
Day 20-Telegram 回聲機器人
系列文
利用Google App Script 實作Telegram Bot30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言