讀取 json 檔
請抓回
favourites.geojson。 這是一個 geojson 地理資料檔案格式。
除了用文字編輯器開啟查看之外,
也可用這個指令查看, 更清淅明瞭:
jq . favourites.geojson
詳見
json 轉檔萬用瑞士刀 jq 。
因為瀏覽器環境下讀取在地資料檔很麻煩, 所以本篇採用 node.js 的 require('fs') 來讀資料; 在瀏覽器除錯環境裡面無法使用。 除了前兩句之外, 其他部分的語法適用於 node.js 跟瀏覽器除錯環境。
fs = require('fs') gjf = JSON.parse(fs.readFileSync('favourites.geojson', 'utf8')) fav = gjf.features n = fav.length fav[n-1] fav[n-1]['properties'] fav[n-1].properties fav[n-1]['geometry'] fav[n-1].geometry fav[n-1]['geometry']['coordinates'] fav[n-1]['geometry']['coordinates'][0] 'type' in fav[n-1]['geometry'] 'xyz' in fav[n-1]['geometry'] fav.map(function (d) { return d.geometry; } ) JSON.stringify(fav)
注意: fav2 = fav
只是敷衍了事的 shallow copy;
真正深層複製的 deep copy 要這樣做:
fav2 = JSON.parse(JSON.stringify(fav))
(但僅適用於樹狀資料結構)
Q: 想要宣告兩個空的陣列變數, 應該這麼寫:
var x=[], y=[];
如果寫成這樣:
var x=y=[];
語法檢查正確;
但是執行時會出現什麼後果?
(我自己的慘痛經驗!)
作業:
- 請從 fav 出發, 建立出如右圖的資料結構 fav3。
- 找出 bounding box (經度範圍及緯度範圍)
- 按照緯度, 由北到南排序。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/js/json.php; 您所看到的版本: December 12 2016 12:54:00.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。