參考資料:
JSON 格式與 JavaScript 解析教學範例 連結
❲筆記❳ JavaScript中物件(object)和JSON格式的轉換
JSON(JavaScript Object Notation):
是一種輕量級交換結構,存在目的在於讓資料與資料間能夠更方便解讀
而我們該如何取得json資料呢?最常見的就是政府公開資訊站 連結
格式:
JSON字串可以包含(物件)或陣列資料(Array)。就像下面範例:
1 | var obj=[ |
注意部分:
- JSON就是一組字串
- 使用
{ }
建立物件時,JSON格式,該屬性名稱一定要有引號
(非常重要!!) - 若物件中的值為function,是無法透過JSON傳遞的。
JSON.stringify( ) 、JSON.parse( )介紹
JSON.parse( ) 連結
用來將JSON格式轉回物件或陣列
補充:JSON.parse() 不容許尾部有逗號
JSON.parse(‘[1, 2, 3, 4, ]’);
JSON.stringify( ) 連結
用來將物件或陣列轉回JSON格式,儲存在localStorage中
補充:
1.chrome上的 JSON套件
目的:幫助我們瀏覽上更為方便,不會很混亂
2.下載到本機後開啟json資料
https://jsoneditoronline.org/
json如何擷取格式呢?
Step1.先到公開資訊站
Step2.找尋想查詢資料 範例
Step3.按右鍵檢查網頁原始碼 將網頁資料複製
Step4.放入編輯器中,利用object、array特性擷取資料
1 | var data= |
問題集:
Q1:若本身就是以中文命名的物件
EX:” 地 點”(中間有空格)、”速限(km/h)”,這該如何抓取?
以下抓取會出現錯誤:
console.log(HsinchuSpeed[i].地 點)
console.log(HsinchuSpeed[i].速限(km/h))
A:可以透過 bracket notation 方法選取
1 | var obj = { |
Q2:為何else中,還要再寫一次變數,不然回出現undefined:undefined沒有下大雨
Q3:if函式中的var 是全域變數嗎?為何不能直接給else函式中使用?
1 | var length = data.length; |
A2: 因為你變數宣告在 if 裡面,如果判斷式不成立時不會執行裡面的程式碼唷。應該要宣告在 if 之前,這樣 if else 的判斷式都能使用到 修改如下
A3:呈上一題,原因是因為沒有執行,所以也不會被宣告
1 | var total = data.length; |