開發 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 響應的處理或數據解析。

分享到社群

發佈留言


所有分類

  • 所有分類
  • 小小創客
  • 工具 & 控制組件
  •    輸入控制單元
  •    線材 & 配件 & 連接器
  • 無線和物聯網
  • Robotics 機器人
  •    智慧小車底盤套件
  • 感測器 / 傳感模組
  •    影像 / 成像 / 顏色 感測
  •    紅外線科技
  •    雜項未分類感測器
  •    壓力 / 彎曲 / 震動
  •    環境感測
  •       液體 / 水質 感測
  •       聲音傳感 / 音量感測
  •       氣體感測
  •       PM 2.5 空氣粉塵感測
  •       溫濕度感測
  •       光線 / 紫外線
  •       氣壓 / 地磁 / 多功能 IMU
  •       壓力 / 彎曲 / 震動
  •    距離感測 / 接近感測
  •    運動 / 位置 / 加速度
  •    生物識別技術
  •    電壓 / 電流
  • 功能模組零配件
  •    驅動模組/步進電機/馬達
  •    按鍵 / 輸入 / 人機介面模組
  •    LED / LCD / 液晶屏
  •    無線通訊模組
  •       RFID 無線射頻
  •       ZigBee 無線模組
  •       xbee 通訊模組
  •       Lora 遠距低功耗模組
  •       2.4G 無線模組
  •       藍牙模組
  •       WIFI 模組
  •    繼電器模組
  •    升壓/降壓/電源模組
  •    衛星定位 GPS
  •    其他功能模組
  •    綠能應用開發模組
  •    電磁鐵相關
  • DIY 套件與學習套件
  • 開發平台與品牌
  •    Arduino 開發板
  •    聯發科 Linkit Smart
  •    ESPRESSIF (ESP) 開發板
  •    BBC Micro Bit V2 單板電腦
  •    樹莓派 Raspberry Pi
  •    香蕉派 Banana PI
  •    其他類型開發板
  •    NVIDIA 人工智慧開發平台
  •    ROCK Pi 單板電腦
  •    AI 人工智慧
  •    SparkFun MicroMod 系列
  • Shield / 功能擴展板
  •    Arduino 功能擴展板
  • 其他產品
  • 工業物聯網 / 工控模組
  • 清倉限時出清活動
  • 人工智慧開發平台
  • Home Assistant 智慧家居
  •    ESPHOME 零組件周邊
  •    Tasmota 零組件周邊
  • 未分類
  • MATTER 智慧家居
  •    ESPHOME 零組件周邊