開發 MqTT 物聯網裝置,常用 Json 資料解析工具 JsonPath

開發 MqTT 物聯網裝置,常用 Json 資料解析工具 JsonPath

開發 MqTT 物聯網裝置,常用 Json 資料解析工具 JsonPath

JsonPath 是一種用於從 JSON 結構化數據中提取和操作數據的查詢語言。它類似於 XPath 對於 XML 的作用,允許使用者通過類似路徑的語法來訪問 JSON 文件中的特定數據。JsonPath 可以用來選擇 JSON 數據的某些部分或對其進行過濾和修改。

JsonPath 語法簡介

  • 根節點 $: JSON 文檔的根元素。
  • 選擇器 .[]: 用於選擇子元素或屬性。點號 . 用於選擇直接子屬性,方括號 [] 可以用來選擇鍵名或索引。
    • 例如: $.store.book 選擇 JSON 中根目錄下的 store 物件內的 book 屬性。
    • $.store.book[0] 則選擇第一本書(索引從 0 開始)。
  • 通配符 *: 用於匹配所有的屬性或元素。
    • 例如: $.store.book[*].author 會選擇 store 目錄下的所有書的作者。
  • 條件過濾 ?(): 用於過濾符合條件的元素。
    • 例如: $.store.book[?(@.price < 10)] 選擇價格小於 10 的書。
  • 範圍 :: 用於選擇數組中的一部分。
    • 例如: $.store.book[0:2] 選擇前兩本書。
  • 表達式 @: 用於表示當前的元素,通常用於過濾條件中。

JsonPath 的用例

  1. 提取單個屬性: 假設你有一個包含書籍信息的 JSON,想要獲取第一本書的標題:

    JsonPath: $.store.book[0].title,返回 "Sayings of the Century"
  2. 篩選和過濾: 假設你想選擇所有價格小於 10 的書: JsonPath: $.store.book[?(@.price < 10)],返回 [{"category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95}]
  3. 選擇多個值: 假設你想要獲取所有書的標題: JsonPath: $.store.book[*].title,返回 ["Sayings of the Century", "Sword of Honour"]

JsonPath 是一個強大的工具,特別適合需要從複雜的 JSON 數據結構中提取信息的場景,如 API 響應的處理或數據解析。

分享到社群

發佈留言