昨天寫出 JSON 的式子,今天把它轉換資料。
建立物件…給 JSON 資料一個變數
1 2 3 4 5 6 7 8 9 10 |
var car = { "name": "Ferrari FF", "dimensions":[{ "Length": "4907 mm", "Width": "1953 mm", "Height": "1379 mm" }], "weight": 1790, "Top speed": "335 km/h" } |
從物件建立 JSON ,用 JSON.stringify 函式轉換
1 |
var json = JSON.stringify(car); |
可以用 console.log 試試看…
1 |
console.log(json); |
會跳出以下結果代表處理成功,這時候是字串形態:
1 |
{"name":"Ferrari FF","dimensions ":[{"Length":"4907 mm","Width":"1953 mm","Height":"1379 mm"}],"weight":1790,"Top speed":"335 km/h"} |
JSON.parse() 把 JSON 字串轉換成物件。
因為網路上的 JSON 檔案是字串形態,要先抓取字串後再做轉換。
1 2 3 4 5 6 7 8 9 10 |
var carStr = '{\ "name": "Ferrari FF",\ "dimensions":[{\ "Length": "4907 mm",\ "Width": "1953 mm",\ "Height": "1379 mm"\ }],\ "weight": 1790,\ "Top speed": "335 km/h"\ }'; |
程式碼裡面的 \ 是字串斷行的符號,因 JSON 字串不能直接斷行,會出錯的。
先把 car 字串資料轉到物件:
var str = JSON.parse(carStr);
然後就可以抓取裡面任何一筆資訊囉
要抓字串的話:
1 |
console.log(carStr.dimensions); |
要抓陣列的話,首先先找到陣列的名稱 (dimensions) ,
再來看要找的資料在陣列的哪裏,以本例來說是第一個也就是 [0],
最後 .要找的名稱
1 |
console.log(str.dimensions[0].Length); |
參考資料 & 其他閱讀:
你不可不知的 JSON 基本介紹
本文同步發表於 http://ithelp.ithome.com.tw/ironman7/app/article/dev/recent/10159223