分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

rest-assured的JsonPath使用方法总结

发布时间:2023-09-06 01:35责任编辑:胡小海关键词:暂无标签

JsonPath对象解析Json格式的数据来说非常简单,比如有下面这样的Json数据:

 1 {"lotto":{ 2 ????"lottoId":5, 3 ????"winning-numbers":[2,45,34,23,7,5,3], 4 ????"winners":[{ 5 ??????"winnerId":23, 6 ??????"numbers":[2,45,34,23,3,5] 7 ????},{ 8 ??????"winnerId":54, 9 ??????"numbers":[52,3,12,11,18,22]10 ????}]11 ??}12 }

下面是一些简单的使用实例:

 1 //这里的lottoJson代表了上面所说的json数据 2 JsonPath jsonPath = new JsonPath(lottoJson); 3 ?4 // 获取lottoId 5 int lottoId = jsonPath.getInt("lotto.lottoId"); 6 ?7 // 获取winning-numbers列表 8 List<string> winningNumbers = jsonPath.get("lotto.winning-numbers"); 9 10 // 下面的语句会返回一个list,list中包含23,5411 List<integer> winningNumbers = jsonPath.get("lotto.winners.winnerId");

从上面的例子中可以看到所有的获取路径中我们都重复使用了lotto,为了避免这个问题,我们可以设置一个根路径(root path):

 1 ?//这里lottoJson代表上面的json数据 2 ?JsonPath jsonPath = new JsonPath(lottoJson); 3 ?//设置根路径 4 ?jsonPath.setRoot("lotto"); 5 ?6 // 获取lottoId 7 ?int lottoId = jsonPath.getInt("lottoId"); 8 ?9 //获取winning-numbers列表10 List<string> winningNumbers = jsonPath.get("winning-numbers");11 12 // 下面的语句将返回一个list,list中包含23,5413 List<integer> winningNumbers = jsonPath.get("lotto.winners.winnerId");

如果你只是对提取一个单一的值感兴趣,你还可以这样做:

1 // "from"是从JsonPath中静态导入的2 int lottoId = from(lottoJson).getInt("lotto.lottoId");

你也可以做一些复杂的操作,比如求winners.numbers的和:

1 int sumOfWinningNumbers = from(lottoJson).2 ???????????????????????????getInt("lotto.winning-numbers.sum()");

或者是找出所有大于10并且winnerId=23的number:

1 // 返回结果是包含45,34 and 23的list2 List<integer> numbers = from(lottoJson).getList(3 ??"lotto.winners.find {it.winnerId == 23}.numbers.findAll {it > 10}",4 ???Integer.class);

rest-assured的JsonPath使用方法总结

原文地址:https://www.cnblogs.com/lwjnicole/p/8269965.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved