如何在JSON中使用Groovy Gpath获取相对路径?

问题描述

我对Serenity BDD放心,并使用Groovy Gpath通过JSON导航。现在,我遇到一种情况,例如,我需要使用低于JSON的Cost值获取大于2的值。有什么方法可以使用相对路径通过GPath和JSON进行导航。

{
"Cadbury": {
    "Specs": {
        "Name": "5 Star","Cost": "2.99"
    }
},"nestle": {
    "Specs": {
        "Name": "BarOne","Cost": "1.99"
    }
},"Arnotts": {
    "Specs": {
        "Name": "TimTam","Cost": "4.99"
    }
},"Milo": {
    "Specs": {
        "Name": "BarMilo","Cost": "3.99"
    }
}

}

我发现depthFirst()或**和breadthFirst()或*遍历可用于XML,但不适用于JSON。

有人可以请问一下。 谢谢

解决方法

它与以下查询配合使用

collect{it.value.Specs}.findAll{it.Cost > '2.00'}.Cost