【问题标题】:Check JSONPath for empty string检查 JSONPath 是否有空字符串
【发布时间】:2017-12-12 09:48:51
【问题描述】:

我有以下 JSON 字符串:

{
  "myKey": "myValue"
}

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

$.myKey

获取 myKey 的值。我试过把它改成

$.[?(@.myKey.length()>0)]

(根据这个主题Expression to filter out elements with empty arrays using `jsonPath`)甚至这个:

$.myKey.length()>0

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

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

$.myKey

然后按“从当前选择”,它可以工作。对于

$.[?(@.myKey != '')]

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

“无效的 JsonPath 表达式”

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

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

【问题讨论】:

    标签: jsonpath


    【解决方案1】:

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

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

    如果这...

    如何检查 myValue 是否为空?

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

    【讨论】:

    • 谢谢。不幸的是,即使它在 JSONPath 评估器中工作,它也不能在我想要的 SoapUI 中工作
    • SoapUI .. 这是有价值的附加信息。有许多 JsonPath 实现和许多使用 JsonPath 的方法。也许您可以更新您的问题以描述 (1) 确切您如何使用 JsonPath; (2) 你正在使用什么 JsonPath 实现,包括它的版本; (3) 您如何应用 JsonPath 表达式和 (4) 您想要获得什么结果(例如,您想在应用给定过滤器后获取 JSON 文档吗?或者您是否想获得一个布尔答案来说明给定的过滤器是否适用?)
    • 好的,我已经在原帖中添加了更多信息
    猜你喜欢
    • 2017-01-25
    • 2010-12-16
    • 2015-06-12
    • 1970-01-01
    • 2014-06-23
    • 2014-09-22
    • 1970-01-01
    相关资源
    最近更新 更多