检查 JSONPath 是否为空字符串

use*_*566 4 jsonpath

我有以下 JSON 字符串:

{
  "myKey": "myValue"
}
Run Code Online (Sandbox Code Playgroud)

我想检查这个字符串是否不为空。我可以做这个:

$.myKey
Run Code Online (Sandbox Code Playgroud)

获取 myKey 的值。我尝试将其更改为

$.[?(@.myKey.length()>0)]
Run Code Online (Sandbox Code Playgroud)

(根据本主题表达式使用 `jsonPath` 过滤掉具有空数组的元素)甚至是这样:

$.myKey.length()>0
Run Code Online (Sandbox Code Playgroud)

但我收到错误消息,它不是有效的 JSONPath 表达式。

我将“JsonPath Match”添加到项目中的测试步骤中。当我将其设置为

$.myKey
Run Code Online (Sandbox Code Playgroud)

然后按“从当前选择”,它就可以了。为了

$.[?(@.myKey != '')]
Run Code Online (Sandbox Code Playgroud)

当我按“从当前选择”时,我得到

“无效的 JsonPath 表达式”

我使用 SoapUI 5.4.0 但我不知道如何检查其 JsonPath 实现。如果字符串为空,我想得到 false。

如何检查 myValue 是否为空?谢谢!

gly*_*ing 6

如果属性不是空字符串,以下 jsonpath 过滤器$.[?(@.myKey != '')]将返回文档。myKey

您可以使用Jayway JsonPath evaluator来验证这一点。

如果这 ...

如何检查 myValue 是否为空?

...的意思是这样的:“我只想在填充 myKey 的情况下返回文档”,那么上面的 jsonpath 过滤器就足够了。