jsonpath 在 jsonarray 中独立于数组索引查找字符串值
jsonpath find string value in the jsonarray independent of array index
我有一个 Gatling JSON 数组对象。该对象包含错误消息,例如
"error": [
{
"errorCode": "111",
"errorMessage": "very dynamic error :- at [Source: java.io.PushbackInputStream@5d0edb12; line: 6, column: 6]; nested exception is com.fasterxml.jackson.core.JsonParseException: "
},
{
"errorCode": null,
"errorMessage": "Fixed Error Message"
},
{
"errorCode": "112",
"errorMessage": "Again some error message"
}
]
我正在检查 jsonpath
($.error[1].errorMessage).is("Fixed Error Message")
但是,不同的 API 有不同的错误对象和固定的 errorMessage 可以放在数组中的任何索引位置。
如何在不担心 arrayIndex 的情况下动态检查 jsonArray 中是否存在固定的 errorMessage?
我可以做一个单独匹配字符串和数组元素的查询,而不提及数组索引,如下所示吗?
($.error[*].errorMessage).is("Fixed Error Message")
您可以使用以下内容过滤数组:
JsonPath.query("$.error[?(@.errorMessage=='Fixed Error Message')]", json)
编辑 1:
这将是检查邮件是否确实找到的首选:
jsonPath("$.error[?(@.errorMessage=='Fixed Error Message')]").exists
如果您想执行 .is() 检查,您可以尝试以下操作(不是很好):
jsonPath("$.error[?(@.errorMessage=='Fixed Error Message')].errorMessage").is("Fixed Error Message")
我有一个 Gatling JSON 数组对象。该对象包含错误消息,例如
"error": [
{
"errorCode": "111",
"errorMessage": "very dynamic error :- at [Source: java.io.PushbackInputStream@5d0edb12; line: 6, column: 6]; nested exception is com.fasterxml.jackson.core.JsonParseException: "
},
{
"errorCode": null,
"errorMessage": "Fixed Error Message"
},
{
"errorCode": "112",
"errorMessage": "Again some error message"
}
]
我正在检查 jsonpath
($.error[1].errorMessage).is("Fixed Error Message")
但是,不同的 API 有不同的错误对象和固定的 errorMessage 可以放在数组中的任何索引位置。
如何在不担心 arrayIndex 的情况下动态检查 jsonArray 中是否存在固定的 errorMessage?
我可以做一个单独匹配字符串和数组元素的查询,而不提及数组索引,如下所示吗?
($.error[*].errorMessage).is("Fixed Error Message")
您可以使用以下内容过滤数组:
JsonPath.query("$.error[?(@.errorMessage=='Fixed Error Message')]", json)
编辑 1:
这将是检查邮件是否确实找到的首选:
jsonPath("$.error[?(@.errorMessage=='Fixed Error Message')]").exists
如果您想执行 .is() 检查,您可以尝试以下操作(不是很好):
jsonPath("$.error[?(@.errorMessage=='Fixed Error Message')].errorMessage").is("Fixed Error Message")