arrays - jsonpath 在与数组索引无关的 jsonarray 中查找字符串值

标签 arrays json scala gatling jsonpath

我有一个数组的 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 可以放在数组中的任何索引位置。

如何动态检查 jsonArray 中是否存在固定的 errorMessage 而不用担心 arrayIndex ?

我可以做一个独立匹配字符串与数组元素而不提及数组索引的查询,如下所示?($.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")

关于arrays - jsonpath 在与数组索引无关的 jsonarray 中查找字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584680/

相关文章:

javascript - 从多个数组之一更新元素

javascript - 获取存储在数组中的动态 div 中动态链接的所有 href 属性

c# - JSON 值无法转换为 System.Int32

xml - Go 中如何将 XML 数据转换为 JSON 数据?

scala - scala 中 null 的相等性,odersky 书的解释似乎与 scala 代码不同?

arrays - 向后浏览词典以查找上次更新值的时间

javascript - jQuery javascript : Array.prototype.slice.call的含义

ios - 无法将类型 '__NSCFArray' 的值转换为 'NSDictionary' + 在 map View 中显示注释

scala - 在 main 和 test 中重复包对象

java - 在 Couchbase 中查询 View ,Java 客户端