MIT App Inventor 新增 dictionary字典資料型態

作者/攝影 曾吉弘

 

MIT App Inventor 新增 dictionary 字典資料型態

MIT App Inventor 在2020年2月份的更新(nb181c / nb182)新增了字典(dictionary)資料型態,有這類需求的朋友歡迎參考它的指令說明,對於 xml 與 json 等資料格式也支援互轉。當然,dictionary 在用法上與 list 相當類似,例如取得指定欄位資料指令 (get value for key),與 list 的 look up in pairs 指令相當類似,這就看大家喜歡哪種方式囉。

直接登入 MIT App Inventor 之後就可以在 Blocks 頁面的 Built-in 內建指令中看到 Dictionaries 指令了,顏色區別上使用沉穩的深藍色(你在幹嘛)。

建立 dictionary 型態變數,需要指定 key 與 value。到時候就是要透過 key 來找 value。value 可用的型態包含 number、text、dictionaries、booleans 與 lists,結構相當有彈性,要做多少層都可以,只是太多層在爬取上會比較辛苦。請參考以下的 block:

等於這樣的內容:

{
  "name": "CAVEDU Education",
  "phone": "0223062900",
  "facebook page": "https://www.facebook.com/CAVEEducation/",
  "location": {
    "latitude": 25.030787,
    "longitude": 121.504242
  }
}

json editor online 這類的網站來看看:

以下是常用的 dictionaries 指令簡介:

查找 get value for key / get value at key path

使用 get value for key 指令在 cavedu 這個字典中查找 “name” 這個 key 所代表的 value,回傳結果為 “CAVEDU Education“。

也可以使用 get value at key path 做到相同的效果,它是上者的進階版。但不再透過指定 key 來取得 value,這個指令可接受由 有效 key 與通過資料結構路徑的數字所組成的清單。例如上述兩個指令的結果是一樣的,都是 “CAVEDU Education

取 location 看看(格式依然為 dictionary)

走過字典產生清單 list by walking key path 指令

list by walking key path 指令運作方式與 get value at key path 類似,差別在於前者回傳為數值所組成的清單,後者則回傳單一值。運作方式是從指定 starting at the given dictionary,並根據指定路徑來拜訪其下的樹狀結構。與 get value at key path 的另一項差別在於,它的 path 是由三個項目所組成:dictionary keys、清單索引值 與 walk all at level 指令。如果指定了 key 或 index 的話,路徑就是由樹狀結構的該點開始。如果使用 walk all at level 指令的話,就會依序納入該點之後的所有值(廣度優先),直到走完整個路徑為止。路徑上的所有元素都會依序被加入成一個 list。

例如以下指令就會把 cavedu 中所有內容顯示出來。

set value for key

加入新的 key – value 組,如果存在就覆寫,不存在就建立新的一組。例如以下指令就是在 cavedu 變數中加入 “city”: “台北” 這一組。

用這組指令來檢查一下,應該會回傳 “台北” 這個結果。

移除指定 key 的這個 key – value 組 

 

相關文章:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *