js 泛型json 過濾_Java解析JSON的利器JSONPATH
阿新 • • 發佈:2021-02-15
技術標籤:js 泛型json 過濾
你想不想讓Java處理Json像JS那樣點點就出來了
那就往下看吧!
JSONpath github地址
json-path/JsonPathgithub.com使用指南
引入Maven jar包
<!-- jsonpath support --> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.4.0</version> </dependency> 測試JSON串,可以在github中獲取
簡單說一下各個業務需求上需要那幾個API吧
查:如果你想尋找某個key的值
直接使用
JsonPath.read(json, "$.store.book[*].author") 號是一個萬用字元, 代表所有,就是獲取到這個json串的store的值裡面的book這個陣列每一個的author, 書店的每本書的作者列舉出來, 返回值不固定,是一個泛型, 你看著合適用哪個,如果你看錯了,它會丟擲異常來,告訴你該用什麼樣的來接受
看下圖控制檯列印的錯誤資訊,很明瞭
改:如果是替換某的Key的值
//把json進行格式化,然後直接按照json路徑,把值重新賦值,格式化字串返回 String newJson = JsonPath.pares(json).set("$.store.book[0].author", "lucas").JsonString(); //輸出結果:把書店的第一本書作者替換為了lucas
增:如果是新塞入資料
//把json進行格式化,然後直接按照json路徑,找到路徑,插入key和value,格式化字串返回
String newJson = JsonPath.parse(json).put("$.store.book[0]", "hello","你好").jsonString();
//輸出結果:把書店的第一本書新增加了一個屬性hello 值為你好
刪:如果是刪除資料
//把json進行格式化,然後直接按照json路徑,找到路徑,刪除key和value,格式化字串返回 String newJson = JsonPath.parse(json).delete("$.store.book[0].hello").jsonString(); //輸出結果:把書店的第一本書刪除了一個屬性hello,對應的值也刪除了
進行簡單CRUD, 還有強大的工功能,請檢視文章開頭的github地址
微信公眾號,同步文章,歡迎關注