1. 程式人生 > 其它 >js 泛型json 過濾_Java解析JSON的利器JSONPATH

js 泛型json 過濾_Java解析JSON的利器JSONPATH

技術標籤:js 泛型json 過濾

你想不想讓Java處理Json像JS那樣點點就出來了

那就往下看吧!

JSONpath github地址

json-path/JsonPath​github.com d9979998d39dfe0bbfc64b5fdf7a8d28.png

使用指南

引入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, 書店的每本書的作者列舉出來, 返回值不固定,是一個泛型, 你看著合適用哪個,如果你看錯了,它會丟擲異常來,告訴你該用什麼樣的來接受

看下圖控制檯列印的錯誤資訊,很明瞭

c6329e67eab5e02b8a470947883228bd.png

改:如果是替換某的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地址

微信公眾號,同步文章,歡迎關注

2e9a136f5cc94e35d66085366a90f24c.png

de1764f0b176f41f92de0cc1c93bce62.png