java - 使用 JsonPath Java 获取字符串值
问题描述
我使用 JsonPath 断言从 api 响应返回的一些值,但断言响应有一个小问题。
这是我得到的回应:
[{"Id":75969,StartDate":"2016-07-01","EndDate":"2021-04-30","duration":5640}]
可以说我想在开始日期断言。我创建的方法如下所示:
public void checkStartDate(String expectedStartDate) {
String responseBody = response.getBody().asString();
JsonPath values = new JsonPath(responseBody);
Assert.assertEquals(expectedStartDate,values.getString("startDate"));
}
我传递给该方法的 expectedStartDate 是 2016-07-01,我从 JsonPath 对象返回的日期是 [2016-07-01],这会导致断言失败。
有谁知道我可以用 JsonPath 做什么,以便从我从响应字符串中提取的值中删除方括号?
解决方案
我认为问题是响应是一个对象数组,而不仅仅是一个对象?所以你想检查一下jp.getString("[0].StartDate")
工作示例:
JsonPath jp = JsonPath.from("[{\"Id\":75969,\"StartDate\":\"2016-07-01\",\"EndDate\":\"2021-04-30\",\"duration\":5640}]");
System.out.println("2016-07-01".equals(jp.getString("[0].StartDate")));
印刷:true
推荐阅读
- mysql - 位于其他表中的值之间的计数的 SQL 查询
- sql - 如何使用 SQL 子查询来限制父查询中返回的值的范围?
- reactjs - 如何消除异步formik / yup验证,它将在用户停止输入数据时进行验证?
- javascript - 传单:点击更改颜色
- pine-script - 交易视图中过去季度报告的 TOTAL_REVENUE
- pic - 如何在没有 MPLABX 或 XC32 的情况下为 PIC32MM 开发
- apache - ImportError:无法在 wsgi 文件中导入名称“app”
- active-directory - NPS 检查哪个 ADuser 的记录以验证帐户?我们可以改变它吗?
- c++ - std::merge 算法的可能实现
- spring - 在处理流程时,弹簧集成是否有任何特定原因会引发此信息