我正在使用放心来测试我的API,我有一个数组列表,其中包含我需要与JSON响应进行比较的日期,但我无法从响应中获取所有日期值
ArrayList<String> jsonElement = response.path("result[0].data[0].record.date");
我只获取第一个数组对象的记录
以下是我的 JSON 响应
{
"statusCode": 200,
"result": [
{
"data": [
{
"record": [
{
"date": "2016-09-07T00:00:00.000000Z"
},
{
"date": "2016-07-07T00:00:00.000000Z"
},
{
"date": "2016-07-21T00:00:00.000000Z"
},
{
"date": "2017-03-31T00:00:00.000000Z"
},
{
"date": "2017-01-30T00:00:00.000000Z"
}
]
},
{
"record": [
{
"date": "2017-07-20T00:00:00.000000Z"
},
{
"date": "2017-08-07T00:00:00.000000Z"
},
{
"date": "2018-01-06T00:00:00.000000Z"
}
]
}
],
"id": "34567890"
}
]
}
我可以想到不同的方法来完成这项工作,但考虑结果将始终为 1,这是一个解决方案
JsonPath js = new JsonPath(json);
ArrayList<String> original = new ArrayList<String>();
int count = js.getInt("result[0].data.size()");
for (int i = 0; i < count; i++) {
original.addAll(js.get("result[0].data[" + i + "].record.date"));
}
System.out.println("Dates : "+original);
System.out.println("Count : "+original.size());
System.out.println("Third Date : "+original.get(2));
输出:
Dates : [2016-09-07T00:00:00.000000Z, 2016-07-07T00:00:00.000000Z, 2016-07-21T00:00:00.000000Z, 2017-03-31T00:00:00.000000Z, 2017-01-30T00:00:00.000000Z, 2017-07-20T00:00:00.000000Z, 2017-08-07T00:00:00.000000Z, 2018-01-06T00:00:00.000000Z]
Count : 8
Third Date : 2016-07-21T00:00:00.000000Z