如何在空手道中使用eval?

时间:2018-06-26 07:33:09

标签: karate

我已经浏览了空手道文档并尝试了以下代码:

<field name="parent_id" type="groupparent"
            description="COM_USERS_GROUP_FIELD_PARENT_DESC"
            label="COM_USERS_GROUP_FIELD_PARENT_LABEL"
            default="5"
            required="true"
        />

但是它抛出错误。如果“附近的地点和地标数组”包含“附近的购物中心和餐厅”,我正在尝试提取所有附近的购物中心和餐厅名称。如果可能,请告诉我如何使用 * eval if (nearby.content[?(@.title == 'Nearby Malls & Restaurants')] == '#notnull') karate.call(* def nearByMallsRestraurants = get nearby.content[?(@.title == 'Nearby Malls & Restaurants')].items[?(@.name)]) 进行排序附近的购物中心名称。

我的json看起来像:

collection.sort

1 个答案:

答案 0 :(得分:0)

请注意-JsonPath不是JS,您在这里混在一起。我的建议是不要使事情过于复杂,而是将其分为多个步骤。这应该回答您所有的问题,包括排序:

* def malls = $nearby.content[?(@.title=='Nearby Malls & Restaurants')]
* def names = $malls..name
* def Collections = Java.type('java.util.Collections')
* eval Collections.sort(names)
* print names

输出:

[
  "Eggzotic",
  "Forum Mall, Koramangala",
  "Kerala Pavilion Restaurant",
  "New Shanthi Nagar",
  "Venus Biryani"
]