開發 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 的用例
- 提取單個屬性: 假設你有一個包含書籍信息的 JSON,想要獲取第一本書的標題:
12345678{"store": {"book": [{ "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 },{ "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }]}}
JsonPath:$.store.book[0].title
,返回"Sayings of the Century"
。 - 篩選和過濾: 假設你想選擇所有價格小於 10 的書: JsonPath:
$.store.book[?(@.price < 10)]
,返回[{"category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95}]
。 - 選擇多個值: 假設你想要獲取所有書的標題: JsonPath:
$.store.book[*].title
,返回["Sayings of the Century", "Sword of Honour"]
。
JsonPath 是一個強大的工具,特別適合需要從複雜的 JSON 數據結構中提取信息的場景,如 API 響應的處理或數據解析。
發佈留言
很抱歉,必須登入網站才能發佈留言。