从 API 响应的 json 数组中提取值,没有括号不起作用
extract value from json array of API response without brackets not working
这是JSON:
{
"first":0,
"rows":100,
"data":[
{
"id":326,
"tag":"QATA9",
"workNo":"qat12345"
}
],
"totalRecords":1
}
我的代码是:
JsonPath jsonPathEvaluator = response.jsonPath();
wID = jsonPathEvaluator.get("data.id");
System.out.println("id is "+ wID);
String responseBody = response.getBody().asString();
int statusCode = response.getStatusCode();
在输出中显示
[326]
但我只需要值 326
[]
分隔数组,因此库将其视为数组。只需选择第一个元素,你应该没问题。
试试这个:
JsonPath jsonPathEvaluator = response.jsonPath();
wID = jsonPathEvaluator.get("data.id")[0];
System.out.println("id is "+ wID);
然后,您还应该记住,首先使用数组这一事实可能表明您可能有多个元素;在这种情况下,您应该简单地遍历数组。
试试这个
JsonPath jsonPathEvaluator = response.jsonPath();
wID = jsonPathEvaluator.get("data[0].id");
System.out.println("id is "+ wID);
这是JSON:
{
"first":0,
"rows":100,
"data":[
{
"id":326,
"tag":"QATA9",
"workNo":"qat12345"
}
],
"totalRecords":1
}
我的代码是:
JsonPath jsonPathEvaluator = response.jsonPath();
wID = jsonPathEvaluator.get("data.id");
System.out.println("id is "+ wID);
String responseBody = response.getBody().asString();
int statusCode = response.getStatusCode();
在输出中显示 [326] 但我只需要值 326
[]
分隔数组,因此库将其视为数组。只需选择第一个元素,你应该没问题。
试试这个:
JsonPath jsonPathEvaluator = response.jsonPath();
wID = jsonPathEvaluator.get("data.id")[0];
System.out.println("id is "+ wID);
然后,您还应该记住,首先使用数组这一事实可能表明您可能有多个元素;在这种情况下,您应该简单地遍历数组。
试试这个
JsonPath jsonPathEvaluator = response.jsonPath();
wID = jsonPathEvaluator.get("data[0].id");
System.out.println("id is "+ wID);