精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

強大!JSON解析神器,再復雜也不怕了

開發 開發工具
當你面對一個嵌套層級很多、結構復雜的JSON對象時,你是否覺得逐一創建對應的Java實體類(或者是Map)來接收這些數據既繁瑣又低效?

環境:SpringBoot3.4.0

1. 簡介

你是否遇到過需要從一個復雜的JSON結構中提取特定信息的場景?

當你面對一個嵌套層級很多、結構復雜的JSON對象時,你是否覺得逐一創建對應的Java實體類(或者是Map)來接收這些數據既繁瑣又低效?

在進行單元測試或模擬請求時,你是否需要構建或修改JSON數據?

在測試過程中,我們可能需要構建特定的JSON請求體或修改響應數據。有沒有一種工具可以幫助我們輕松地完成這些操作?

答案是肯定的!有一種名為JSONPath的工具,它提供了一種類似于XPath的表達式語言,用于在JSON文檔中查詢和操作數據。JSONPath不僅能夠高效地定位和提取JSON中的特定信息,還支持數據過濾、轉換和更新等操作。

2. 實戰案例

2.1 準備環境

<dependency>
  <groupId>com.jayway.jsonpath</groupId>
  <artifactId>json-path</artifactId>
</dependency>

如果你是基于Spring Boot環境,那么你不需要指定版本,Spring Boot已經幫我們管理了該組件的版本。截至撰寫該篇文章時,JSONPath的最新版本是2.9.0。

說明:JsonPath表達式總是以與XPath表達式在XML文檔中結合使用相同的方式來引用JSON結構。在JsonPath中,“根成員對象”無論是對象還是數組,總是被引用為$。

2.2 語法介紹

JsonPath 表達式可以使用點符號"."

$.store.book[0].title

也可以使用括號表示法

$['store']['book'][0]['title']

操作符

操作

說明

$

查詢的根元素,所有路徑表達式的起點

@

由過濾器謂詞處理的當前節點

*

通配符,在需要名稱或數字的位置可用

..

深度掃描,在需要名稱的位置可用

.<name>

點表示法的子節點

['<name>' (, '<name>')]

方括號表示法的子節點或子節點集合

[<number> (, <number>)]

數組索引或索引集合

[start:end]

數組切片操作符

[?(<expression>)]

過濾器表達式,表達式必須計算為布爾值

函數

函數可以在路徑的末尾被調用——函數的輸入是路徑表達式的輸出。函數的輸出由函數本身決定。支持如下的函數:

過濾操作

過濾器是用于篩選數組的邏輯表達式。一個典型的過濾器可能是[?(@.age > 18)],其中@代表當前正在處理的項。可以使用邏輯運算符&&和||創建更復雜的過濾器。字符串字面量必須用單引號或雙引號括起來(例如[?(@.color == 'blue')]或[?(@.color == "blue")])。支持如下過濾:

操作符

說明

==

左值等于右值(注意1不等于'1')

!=

左值不等于右值

<

左值小于右值

<=

左值小于或等于右值

>

左值大于右值

>=

左值大于或等于右值

=~

左值匹配正則表達式 [?(@.name =~ /foo.*?/i)]

in

左值存在于右值中 [?(@.size in ['S', 'M'])]

nin

左值不存在于右值中

subsetof

左值是右值的子集 [?(@.sizes subsetof ['S', 'M', 'L'])]

anyof

左值與右值有交集 [?(@.sizes anyof ['M', 'L'])]

noneof

左值與右值無交集 [?(@.sizes noneof ['M', 'L'])]

size

左值(數組或字符串)的大小應與右值匹配

empty

左值(數組或字符串)應為空

接下來,我們介紹具體的使用示例。

2.3 使用示例

準備json數據

{
  "store": {
    "book": [
      {
        "category": "Java",
        "author": "張三",
        "title": "Java從入門到放棄",
        "price": 88.6
      },
      {
        "category": "Spring",
        "author": "Pack",
        "title": "Spring從入門到精通",
        "price": 99.8
      },
      {
        "category": "Java",
        "author": "李四",
        "title": "多線程并發編程",
        "isbn": "1-9527-6688-9",
        "price": 66.9
      },
      {
        "category": "Spring",
        "author": "Pack",
        "title": "Spring Boot3實戰案例100講",
        "isbn": "6-9527-7799-2",
        "price": 70
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 666
    }
  },
  "expensive": 10
}

層級格式如下:

接下來,我們將在代碼中通過jsonpath來操作上面的json數據。

讀取json內容

String json = new ClassPathResource("data.json")
  .getContentAsString(StandardCharsets.UTF_8) ;

下面都將基于上面讀取到的json數據進行操作。

獲取所有圖書的作者

List<String> list = JsonPath.parse(json).read("$.store.book[*].author");
System.err.println("Authors: " + list) ;
// 輸出結果
Authors: ["張三","Pack","李四","Pack"]

獲取所有作者

List<String> list = JsonPath.parse(json).read("$..author") ;
System.err.println("Authors: " + list) ;
// 輸出結果
Authors: ["張三","Pack","李四","Pack"]

獲取store節點下的所有數據

Object result = JsonPath.parse(json).read("$.store.*") ;
System.err.println(result) ;

輸出結果如下:

類型是:net.minidev.json.JSONArray

獲取所有價格price

/**獲取store節點下的所有price*/
List<Double> prices = JsonPath.parse(json).read("$.store..price") ;
System.err.println(prices) ;
// 輸出結果
[88.6,99.8,66.9,70,666]

獲取指定索引的書

/**獲取第三本書*/
Object result = JsonPath.parse(json).read("$..book[2]") ;
System.err.println(result) ;
/**輸出結果; 類型:net.minidev.json.JSONArray*/
[{"category":"Java","author":"李四","title":"多線程并發編程","isbn":"1-9527-6688-9","price":66.9}]


result = JsonPath.parse(json).read("$..book[0,1]") ;
System.err.println(result) ;
// 輸出結果
[
  {"category":"Java","author":"張三","title":"Java從入門到放棄","price":88.6},
  {"category":"Spring","author":"Pack","title":"Spring從入門到精通","price":99.8}
]

所有帶有ISBN編號的書

/**所有帶有ISBN編號的書*/
Object result = JsonPath.parse(json).read("$..book[?(@.isbn)]") ;
System.err.println(result) ;
// 輸出結果
[
  {"category":"Java","author":"李四","title":"多線程并發編程","isbn":"1-9527-6688-9","price":66.9},
  {"category":"Spring","author":"Pack","title":"Spring Boot3實戰案例100講","isbn":"6-9527-7799-2","price":70}
]

獲取所有價格小于70元的圖書

/**獲取所有價格小于70元的圖書*/
Object result = JsonPath.parse(json).read("$.store.book[?(@.price < 70)]") ;
System.err.println(result) ;
// 輸出結果
[
  {"category":"Java","author":"李四","title":"多線程并發編程","isbn":"1-9527-6688-9","price":66.9}
]

獲取圖書的個數

// 獲取圖書的個數
Integer count = JsonPath.parse(json).read("$..book.length()") ;
System.err.println(count) ;
// 輸出結果
4

自定義過濾條件

import static com.jayway.jsonpath.Criteria.where;
import static com.jayway.jsonpath.Filter.filter;
// 自定義filter
Filter cheapFictionFilter = filter(
    where("category").is("Java").and("price").lte(70D)
  );
List<Map<String, Object>> books = JsonPath.parse(json).read("$.store.book[?]", cheapFictionFilter);
System.err.println(books) ;
// 輸出結果
[
  {"category":"Java","author":"李四","title":"多線程并發編程","isbn":"1-9527-6688-9","price":66.9}
]

修改數據

// 修改數據
String newJson = JsonPath.parse(json)
  .set("$['store']['book'][0]['author']", "pack_xg")
  .jsonString();
System.out.println(newJson) ;

輸出結果:

圖片圖片

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2021-08-05 23:04:51

iPhone手機定位

2010-05-25 11:41:36

數據中心布線問題

2010-09-16 11:07:28

裁員

2019-04-08 08:25:48

代碼開發工具

2023-02-28 17:27:02

分庫分表中間件

2019-07-16 13:02:26

BugDebug代碼

2019-06-17 05:03:37

memcache內核架構

2022-07-11 07:36:36

緩存緩存雪崩緩存擊穿

2023-08-06 12:50:19

機器人AI

2010-03-05 08:54:14

Windows 7試用版升級

2022-02-18 18:00:00

數字人人工智能冬奧黑科技

2019-04-01 05:02:48

搜索架構檢索

2021-07-15 07:23:25

MySQL故障索引

2014-11-12 09:58:48

2014-11-04 10:02:33

2021-03-19 09:55:15

Linuxshell命令

2010-05-18 15:36:59

IIS服務器

2021-10-11 07:46:50

ScalaJVM語言

2020-05-07 16:08:28

Linuxshell命令

2019-10-11 11:00:53

Nginx神器前端
點贊
收藏

51CTO技術棧公眾號

男人av在线播放| av片免费播放| 欧美电影《睫毛膏》| 欧美日韩国产免费| 国产曰肥老太婆无遮挡| 日本一二三区在线视频| 欧美aaaaa成人免费观看视频| 久热在线中文字幕色999舞| 老熟女高潮一区二区三区| 美女日韩欧美| 亚洲激情中文1区| 免费在线成人av电影| 国产精品久久久久毛片| av不卡在线| 日韩中文字幕av| 一区二区三区四区影院| yiren22亚洲综合| 亚洲伊人伊色伊影伊综合网| 三区精品视频观看| 日韩一级免费毛片| 久草中文综合在线| 欧美一级黑人aaaaaaa做受| 在线观看天堂av| 午夜欧洲一区| 日韩午夜av电影| the porn av| 极品在线视频| 亚洲最大成人网4388xx| 亚洲一二区在线| 偷拍自拍在线| 成人av在线影院| 亚洲va欧美va在线观看| 中文字幕 视频一区| 国产精品美女久久久| 欧美猛男性生活免费| 一级特黄曰皮片视频| 欧美理伦片在线播放| 日韩一区二区三区在线| 九九精品久久久| 日本成人片在线| 色婷婷综合久久久中文字幕| 奇米影视亚洲色图| 天堂av在线电影| 中文字幕综合网| 一区二区三区在线观看www| 国产综合视频一区二区三区免费| av动漫一区二区| 97视频中文字幕| av天堂一区二区三区| 国产米奇在线777精品观看| 国产精品综合久久久| 亚洲av无码精品一区二区| 国产一区白浆| 国产91精品视频在线观看| 国产午夜精品一区二区理论影院 | 日本伊人精品一区二区三区观看方式| 午夜精品在线视频| 日韩av一二三区| 亚洲精品乱码| 欧美与欧洲交xxxx免费观看| 欧美一级片免费在线观看| 夜久久久久久| 91精品国产91久久久| 在线观看黄网站| 老司机久久99久久精品播放免费| 欧日韩不卡在线视频| www.伊人久久| 玖玖在线精品| 国产日韩欧美电影在线观看| 亚洲字幕av一区二区三区四区| 另类调教123区 | 久久这里有精品| a在线视频播放观看免费观看| 欧美88av| 97热精品视频官网| 天天综合久久综合| 国产在线不卡一卡二卡三卡四卡| 91视频国产精品| 后进极品白嫩翘臀在线视频| av一区二区久久| 欧美黄色直播| 国产黄a三级三级三级av在线看| 亚洲一区二区三区视频在线| 欧美性久久久久| 欧美成人一二区| 精品久久久久久久人人人人传媒| 久久久久久久无码| 91蜜臀精品国产自偷在线| 欧美成人精品一区| 亚洲第一在线播放| 久久精品久久综合| 国产精品一区而去| 国产私拍精品| 亚洲免费观看高清完整版在线观看熊| 日韩成人三级视频| 日本肉肉一区| 欧美tickling网站挠脚心| 国产福利短视频| 偷偷www综合久久久久久久| 久久久亚洲福利精品午夜| 337p粉嫩色噜噜噜大肥臀| 国产一区二区在线免费观看| 久久99精品久久久久久秒播放器 | 美女福利精品视频| 久久久精品福利| 国产福利一区二区三区视频在线 | 亚洲专区一区| 96pao国产成视频永久免费| 色在线免费视频| 亚洲黄色尤物视频| wwww.国产| 婷婷亚洲精品| 欧美另类老女人| 在线观看国产一区二区三区| 94色蜜桃网一区二区三区| 在线综合视频网站| 韩漫成人漫画| 亚洲国模精品私拍| 男的操女的网站| 琪琪一区二区三区| 欧美日韩天天操| 久久影院午夜精品| 精品免费视频一区二区| 国产一二三区精品| 免费亚洲电影在线| 热re99久久精品国产99热| а√天堂资源官网在线资源| 欧美一区二区播放| 夫妻性生活毛片| 日韩激情一二三区| 久久精品欧美| 波多野结衣乳巨码无在线观看| 538prom精品视频线放| 美女100%露胸无遮挡| 久久综合五月| 免费看成人片| 欧美xoxoxo| 亚洲人成电影网站色www| 日本熟妇色xxxxx日本免费看| 国产精品一区二区在线看| 亚洲精品在线免费看| 日韩毛片一区| 正在播放亚洲1区| 中国a一片一级一片| 国产亚洲女人久久久久毛片| 美女av免费在线观看| 日韩av不卡一区| 97超碰色婷婷| 青青草免费在线| 色香色香欲天天天影视综合网| 懂色av粉嫩av蜜乳av| 日韩午夜电影| 蜜桃视频在线观看91| 免费亚洲电影| 一区二区三区www| 一区二区视频播放| 中文字幕视频一区| 亚洲免费在线播放视频| 欧美黄色一级视频| 国产精品久久九九| 涩涩av在线| 国产香蕉一区二区三区在线视频 | 欧美大片免费高清观看| 亚洲免费视频网站| 中文字幕在线日亚洲9| 中文字幕中文字幕在线一区| 91日韩精品视频| 欧美精品二区| 精品在线不卡| 日韩中文视频| 欧美大成色www永久网站婷| 欧美特黄一级视频| 欧美午夜视频一区二区| 阿v天堂2014| 国产精品一卡二卡在线观看| 国产激情片在线观看| 成人在线视频你懂的| 97在线视频免费| 国产午夜精品一区理论片| 欧美日韩大陆一区二区| 久久丫精品久久丫| 久久综合狠狠综合久久综合88| 日韩欧美xxxx| 亚洲综合激情在线| 久久精品国产一区二区三区不卡| 99riav视频一区二区| 久久电影一区二区| 青青草视频在线观看| 欧美人体做爰大胆视频| 国产精品1000| 国产精品美女一区二区在线观看| 欧洲美女亚洲激情| 国产一区白浆| 一区在线电影| 日韩三区视频| 91亚洲永久免费精品| 欧美a级在线观看| 日韩视频免费观看| 精品国精品国产自在久不卡| 欧美性少妇18aaaa视频| caoporn91| 国产午夜精品在线观看| 野战少妇38p| 日韩成人免费电影| 一区二区三区四区五区视频| 国产成人澳门| 成人午夜在线视频一区| 欧美色网一区| 久久久久久噜噜噜久久久精品| 888av在线| 日韩精品日韩在线观看| 国产jzjzjz丝袜老师水多| 在线观看亚洲专区| 国产成人免费看| 亚洲国产综合在线| 一区二区国产精品精华液| 久久人人97超碰com| 精品国产乱码久久久久夜深人妻| 免费视频最近日韩| 男人透女人免费视频| 在线看片欧美| 国产91在线亚洲| 五月久久久综合一区二区小说| 奇米视频888战线精品播放| 日韩欧美久久| 国产视频福利一区| 成人在线黄色| 国产精品第3页| 亚洲精品mv| 97超级碰在线看视频免费在线看| 伦理av在线| 色综合五月天导航| 伊人春色在线观看| 久久国产精品视频| 国产最新在线| 精品久久久91| 黄网站免费在线播放| 日韩中文在线视频| 日本中文字幕在线看| 这里只有精品在线观看| caoporn国产精品免费视频| 亚洲精品自拍偷拍| 青青青草网站免费视频在线观看| 亚洲第一页自拍| 天天干,天天操,天天射| 亚洲激情自拍图| 天堂网在线中文| 亚洲激情久久久| 婷婷开心激情网| 日韩精品中文字幕有码专区| 三级网站在线看| 亚洲精品黄网在线观看| 日本天堂影院在线视频| 亚洲天堂网站在线观看视频| 黄色在线视频观看网站| 一本色道久久88综合日韩精品| 国产污视频在线| 日韩一区二区欧美| a级影片在线观看| 久久免费成人精品视频| 女人让男人操自己视频在线观看| 91国偷自产一区二区三区的观看方式| 国产伦理精品| 日本成人黄色片| www.26天天久久天堂| 亚洲自拍偷拍在线| 日韩有码中文字幕在线| 日韩一区二区三区高清| 亚洲电影在线一区二区三区| av日韩在线看| 国产精品久久久久久模特| 免费看国产黄色片| 国产米奇在线777精品观看| 插我舔内射18免费视频| 国产午夜精品一区二区三区嫩草| 国产18无套直看片| 一区二区三区四区蜜桃 | 欧美日韩视频专区在线播放| 97成人在线观看| 亚洲成avwww人| 免费黄网站在线观看| 日韩一区视频在线| 视频在线这里都是精品| 热草久综合在线| 国产精品777777在线播放| 国产91亚洲精品一区二区三区| 欧美一区 二区| 亚洲一区在线免费| 欧美三级网页| 可以在线看的黄色网址| 国产精品一区二区久久精品爱涩 | 国产精品亚洲二区| 久久视频免费在线| 久久一区激情| 韩国三级在线看| 国产欧美综合在线| 国产一级一片免费播放放a| 91久久精品网| 亚洲免费一级片| 色妞在线综合亚洲欧美| 国产夫妻在线播放| 国产日韩欧美中文在线播放| 精品久久ai电影| 亚洲一区二区在线免费观看| 91久久综合| 日本一二三四区视频| 国产亚洲1区2区3区| 久久精品免费av| 在线成人小视频| 国产一级免费在线观看| 国内精品国产三级国产在线专| 国产原创一区| 欧美精品一区二区三区在线看午夜 | 亚洲一区二区四区| 久久国产88| 男人的天堂影院| 亚洲最新视频在线观看| 国产又大又长又粗| 中文字幕日韩精品在线| 欧美香蕉视频| 麻豆91蜜桃| 日韩视频不卡| 性色av蜜臀av浪潮av老女人| 亚洲摸摸操操av| 国产绿帽刺激高潮对白| 这里只有精品视频在线| 精品成人免费一区二区在线播放| 久久久久久久久久久久久久一区 | 亚洲涩涩在线观看| 国产丝袜在线精品| 中文字幕日韩免费| 精品亚洲一区二区三区在线观看| 丁香高清在线观看完整电影视频| 亚洲一区久久久| 婷婷综合社区| 成人性生交视频免费观看| 国产精品久久久久久久久免费樱桃 | 免费看的黄色录像| 在线免费观看日韩欧美| 美国成人毛片| 日韩免费av在线| 成人系列视频| 在线观看国产一级片| 国产精品欧美久久久久一区二区| 国产又粗又猛又黄视频| 亚洲人成网7777777国产| 亚洲天堂一区二区| 日韩欧美一区二区三区久久婷婷| 久久一区激情| 一级二级黄色片| 欧美日高清视频| av免费在线观| 成人在线视频电影| 亚洲激情社区| 久久精品国产亚洲av麻豆| 欧美性猛交视频| 1区2区3区在线观看| 国产日韩一区在线| 国内自拍视频一区二区三区| 国产精品久久久久久亚洲av| 亚洲成va人在线观看| 深夜影院在线观看| 国产精品美女呻吟| 亚洲情侣在线| 性囗交免费视频观看| 欧美主播一区二区三区美女| 四虎久久免费| 波多野结衣成人在线| 国产精品一区毛片| 亚洲精品成人av久久| 91精品国产色综合久久不卡蜜臀| 欧美xxxx做受欧美88bbw| 精品免费日产一区一区三区免费| 久久一区亚洲| 国产人妻精品一区二区三区不卡| 亚洲变态欧美另类捆绑| 亚洲成人一区在线观看| 影音先锋成人资源网站| av亚洲产国偷v产偷v自拍| 国产精品无码一区| 色综合天天综合网国产成人网| 欧美一区二区三区红桃小说| 三上悠亚在线一区二区| 亚洲最大色网站| 国产三级在线| 国产 高清 精品 在线 a| 免费亚洲网站| 唐朝av高清盛宴| 亚洲天堂免费视频| 欧美高清一级片| www.日本xxxx| 亚洲一区二区av在线| jizz在线观看中文| 国产厕所精品在线观看| 男女性色大片免费观看一区二区 | 亚洲电影第1页| 深夜视频一区二区| 国产原创popny丨九色 | 国产精品久久成人免费观看| 99久久国产综合精品麻豆|