精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美三区在线| 开心久久婷婷综合中文字幕 | 亚洲免费一级视频| 欧美精品电影| 北条麻妃国产九九精品视频| 日本免费久久高清视频| www深夜成人a√在线| 美女午夜精品| 欧美乱妇20p| 一区二区传媒有限公司| 毛片在线不卡| 2024国产精品| 3d精品h动漫啪啪一区二区| 日本韩国欧美中文字幕| **女人18毛片一区二区| 精品五月天久久| 亚洲一区二区三区三州| 国产精品极品美女在线观看| 亚洲在线视频一区| 性欧美大战久久久久久久免费观看| 国产精品一区二区黑人巨大| 久久免费高清| 九九久久久久久久久激情| 久久久久久久久久久久久久久| 一区二区三区欧洲区| 欧美日韩国产小视频| 久久美女福利视频| 伦理av在线| 综合久久给合久久狠狠狠97色 | 色97色成人| 日韩成人中文字幕| 亚洲黄色小说在线观看| av一级久久| 欧美视频一区在线观看| av动漫在线观看| gratisvideos另类灌满| 亚洲丝袜美腿综合| 一区精品在线| h网站视频在线观看| 91蜜桃在线免费视频| 国产精品久久久久久久天堂第1集| 一级片视频网站| 日韩精品91亚洲二区在线观看| 久久久久中文字幕| 精品爆乳一区二区三区无码av| 国产精品久久久乱弄| 中文字幕日韩av电影| 国产成人精品无码免费看夜聊软件| 成功精品影院| 亚洲国产天堂久久综合网| 色诱av手机版| 成人黄色av网址| 精品精品欲导航| 亚洲少妇一区二区三区| 91麻豆精品国产91久久久久推荐资源| 日韩欧美综合在线| 精人妻一区二区三区| 99re8这里有精品热视频免费| 日韩三级视频中文字幕| 日本中文字幕精品| 国产美女撒尿一区二区| 亚洲国产毛片完整版| 国产乱了高清露脸对白| 一本色道久久综合狠狠躁的番外| 日韩电影中文字幕在线| 国产网站无遮挡| 亚洲精品亚洲人成在线观看| 亚洲人成在线一二| www.4hu95.com四虎| 91精品综合久久久久久久久久久 | 中文字幕一区二区三区精彩视频| 色综合久久久久综合一本到桃花网| 国产精品麻豆99久久久久久| 在线一区亚洲| 久久免费电影| 日韩欧美国产免费播放| 免费黄色一级网站| 国产免费区一区二区三视频免费 | 一区二区三区伦理片| 成人影视亚洲图片在线| 欧美成人午夜激情| 日韩精品手机在线| 蜜臀av国产精品久久久久| 91久久精品视频| 天堂av中文字幕| 国产三级精品视频| 日本黄xxxxxxxxx100| 美女网站视频在线| 在线观看视频一区| 黄页网站在线看| 欧美猛男男男激情videos| 日韩一级黄色av| 国产精品1000| 奇米一区二区三区| 不卡视频一区二区三区| 精华区一区二区三区| 亚洲欧美另类久久久精品| 日本中文字幕网址| 久久爱.com| 亚洲精品国产福利| 亚洲人与黑人屁股眼交| 韩日欧美一区| 国产精品女人久久久久久| 亚洲黄色片视频| 国产农村妇女精品| 久久这里只有精品23| 日韩一区二区三免费高清在线观看| 精品久久久久av影院 | 色在线免费视频| 中文字幕亚洲不卡| 男人日女人bb视频| 色播一区二区| 色婷婷综合成人| 五月天婷婷导航| 成熟亚洲日本毛茸茸凸凹| 亚洲日本japanese丝袜| 亚洲黄色免费av| 欧美不卡一区二区三区四区| 日本精品久久久久中文| 亚洲欧美日韩国产一区二区| 999国产视频| 香蕉视频免费在线播放| 日韩欧美在线视频| 午夜影院福利社| 午夜精品亚洲| 国产日韩在线看片| 国产人成在线观看| 色综合天天综合色综合av| 亚洲精品无码一区二区| 欧美在线国产| 91情侣偷在线精品国产| 日本高清视频在线观看| 色婷婷综合在线| 在线精品一区二区三区| 激情六月综合| 高清视频一区| 日本孕妇大胆孕交无码| 欧美一级久久久久久久大片| 欧美a级片免费看| 麻豆精品视频在线观看免费| 丝袜美腿玉足3d专区一区| 欧美一级大黄| 亚洲人午夜色婷婷| 国产精品xxxxxx| 国产欧美日韩另类一区| 久久精品视频91| 欧美日韩国产免费观看视频| 国产精品高清在线观看| 成人综合影院| 欧美日韩亚洲另类| 国产精品久久国产精麻豆96堂| 日本视频中文字幕一区二区三区| 欧美一区三区二区在线观看| 日韩av超清在线观看| 亚洲日本成人女熟在线观看| 成人免费毛片视频| 国产精品丝袜在线| 九九九九九伊人| 你懂的一区二区| eeuss一区二区三区| 国产99在线观看| 日韩av中文字幕在线| 中文字幕国产在线观看| 中文字幕免费观看一区| 午夜剧场高清版免费观看| 中文字幕一区二区三区欧美日韩| 97人人模人人爽人人喊38tv| 国产精品xx| 一本一道久久a久久精品逆3p| 在线观看免费中文字幕| 亚洲精品你懂的| 国产a级片视频| 久久aⅴ国产紧身牛仔裤| 亚洲国产欧洲综合997久久 | 鲁丝一区鲁丝二区鲁丝三区| 精品视频在线一区二区在线| 久久久电影免费观看完整版| 亚洲国产精品无码久久| 欧美午夜片欧美片在线观看| www久久久久久久| 国产成人a级片| 女性隐私黄www网站视频| 亚洲天天影视网| 久久99九九| 深夜福利亚洲| 97视频网站入口| 91伦理视频在线观看| 日韩美女视频在线| 免费黄色片视频| 一区二区三区在线视频免费| 中文字幕 自拍| 精品无人码麻豆乱码1区2区 | 日韩欧美第二区在线观看| 国产精品久久久久久久久久辛辛| 国内精品视频一区| 免费黄网站在线| 亚洲国产精品999| 一级黄色a视频| 激情久久av一区av二区av三区| 99精品全国免费观看| 成人国产电影网| 波多野结衣国产精品| 性久久久久久| 国产美女永久无遮挡| 三上亚洲一区二区| 蜜桃视频日韩| 99精品在免费线中文字幕网站一区| 国产成人精品电影久久久| 任你弄在线视频免费观看| 亚洲网站视频福利| 欧美视频xxx| 欧美一区二区播放| 在线播放成人av| 欧美视频一区二区三区…| 国产精品suv一区二区| 综合分类小说区另类春色亚洲小说欧美 | 一区二区精品免费视频| 亚洲免费专区| 精品久久久三级| 红杏视频成人| 国产二区一区| 亚洲高清在线一区| 91免费电影网站| 免费成人黄色网| 国产精品第10页| 欧美一级大黄| 国产91精品久久久久久| 国产三级电影在线播放| 国产做受高潮69| 超碰97免费在线| 精品自在线视频| 在线看女人毛片| 九九热精品在线| av片在线观看| 欧美精品免费看| 日本精品600av| 色中色综合影院手机版在线观看| 蜜芽在线免费观看| 色狠狠久久aa北条麻妃| av电影在线观看一区二区三区| 亚洲视频国产视频| 激情小视频在线观看| 亚洲深夜福利网站| а√天堂中文在线资源bt在线| 国产亚洲欧洲高清一区| www.91在线| 久久精品国产清自在天天线| 色开心亚洲综合| 久久综合电影一区| 2020国产在线视频| 欧美激情二区三区| 国产传媒在线观看| 欧美最顶级的aⅴ艳星| 在线免费日韩片| 国产精品日韩欧美| 亚洲一区导航| 99国产在线| 嫩草国产精品入口| 日本在线播放一区| 天天综合一区| 人人干视频在线| 丝袜美腿亚洲色图| 国产又黄又猛的视频| 国产一区二区女| 久久精品aⅴ无码中文字字幕重口| 成人国产亚洲欧美成人综合网| 91精品小视频| 中文字幕亚洲不卡| 国产精彩视频在线| 欧美性猛片aaaaaaa做受| 国产精品乱码久久久| 精品国产欧美一区二区| 毛片在线播放网站| 精品国产一区二区三区在线观看| 先锋成人av| 国产成人精品综合| 免费精品一区二区三区在线观看| 国产成人亚洲欧美| 少妇精品久久久一区二区三区| 艳色歌舞团一区二区三区| 国色天香一区二区| 久久婷婷国产91天堂综合精品| 国产一区二区三区免费在线观看| 午夜久久久久久久| 国产精品久久久久一区 | 国产欧美一级| 亚洲一区二区三区四区五区| 成人国产精品免费网站| av免费播放网站| 亚洲成av人片一区二区三区| aaa在线视频| 精品少妇一区二区三区日产乱码 | 久久电影院7| 黄页免费在线观看视频| 麻豆91在线观看| 中文字幕一区二区久久人妻网站 | 老汉色影院首页| 免费看亚洲片| 久久久精品人妻一区二区三区| 国产亚洲成av人在线观看导航| 欧美精品一区二区成人| 欧美自拍丝袜亚洲| 欧美视频xxx| 欧美成人精品一区二区三区| 天天免费亚洲黑人免费| 成人欧美一区二区三区在线观看| 成人动漫免费在线观看| 性欧美大战久久久久久久| 激情综合色播激情啊| 自拍偷拍中文字幕| 亚洲妇熟xx妇色黄| 国产色综合视频| 这里只有精品视频| 在线精品亚洲欧美日韩国产| 国产精品青青草| 中文字幕一区二区三区久久网站 | 97久久中文字幕| 日韩色妇久久av| 亚洲欧美日本视频在线观看| 欧美日韩一区二区三区四区五区六区| 中文字幕一区二区不卡| 亚洲精品久久久久久久蜜桃| 亚洲精品国产综合区久久久久久久| xvideos国产在线视频| 国产精品天天狠天天看| 婷婷激情久久| 国产69精品久久久久久久| 国产99久久久国产精品免费看 | 亚洲午夜精品网| 国产精品亚洲欧美在线播放| 日韩中文字幕免费看| 欧美影视资讯| 香蕉久久夜色| 久久成人综合网| 少妇高潮惨叫久久久久| 欧美午夜理伦三级在线观看| 国产精品四虎| 国产精品99一区| 第九色区aⅴ天堂久久香| 欧美精品无码一区二区三区| 久久久不卡网国产精品二区| 一本一道无码中文字幕精品热| 亚洲全黄一级网站| 亚洲精品国产嫩草在线观看| 天堂资源在线亚洲视频| 老司机精品视频在线| 黄色录像一级片| 91精品国产综合久久久蜜臀粉嫩| dy888亚洲精品一区二区三区| 亚洲一区二区三| 欧美xxx在线观看| 伊人久久久久久久久| 亚洲综合激情小说| 手机在线观看毛片| 日本久久久久久久久久久| 欧美日韩高清| 亚洲第一天堂久久| 一区二区三区加勒比av| 天天干,夜夜爽| 国产99久久精品一区二区 夜夜躁日日躁 | 亚洲黄色片网站| 成人欧美一区二区三区的电影| 欧美日韩大片一区二区三区 | 91精品国产综合久久香蕉的用户体验 | 中文字幕一区二区在线观看| 国产乱人乱偷精品视频a人人澡| 久久国产视频网站| 国产精品香蕉| 免费在线观看的毛片| 亚洲欧洲无码一区二区三区| 精品国产亚洲AV| 欧美诱惑福利视频| 日韩一区二区三区免费播放| 成人一区二区三区仙踪林| 欧美日韩一区二区三区在线免费观看| wwwxxx在线观看| 国产精成人品localhost| 男人天堂欧美日韩| 国产精品国产三级国产传播| 亚洲精品国产拍免费91在线| 国产精品久久久久久吹潮| 喜爱夜蒲2在线| 久久久激情视频| a网站在线观看| 欧美一区二区三区艳史| 午夜av一区| 成人免费无码大片a毛片| 欧美日韩国产大片| yellow字幕网在线| 亚洲欧美国产精品桃花| 成人黄色网址在线观看| 曰批又黄又爽免费视频| 国内精品视频在线| 91精品久久久久久久久久不卡| 国产精品无码专区| 91精品国产综合久久久久久| 亚洲欧美一区二区三区| 国产爆乳无码一区二区麻豆| 亚洲国产高清在线| 男人的天堂在线免费视频|