首页 > 解决方案 > 是否可以在 JavaScript 函数中使用 JsonPath 之类的东西来浏览 json?

问题描述

这是我的测试:

  Background:
    * url serverUrl
    * configure headers = read('classpath:headers.js')
    * def getId = function(){ return java.util.UUID.randomUUID() + '' }

  Scenario: Create lead
    * def req = read('classpath:data/leads.json')
    * def fun = function(x, i){ x.id = getId(); return x }
    * def updated = karate.map(req.updated, fun)
    * def deleted = karate.map(req.deleted, fun)
    Given path '/leads'
    And request req
    When method post
    Then status 200
    And match $..updated.length() == [3]

是否可以以某种方式替换这些行

    * def fun = function(x, i){ x.id = getId(); return x }
    * def updated = karate.map(req.updated, fun)
    * def deleted = karate.map(req.deleted, fun)

喜欢

    * def fun = function(x, i){ $x..id = getId(); return x }
    * def req = karate.map(req, fun)

我们是否有允许在 JS 函数中通过 json 轻松导航的东西?

标签: jsonkarate

解决方案


不,JsonPath 在 JavaScript 中不起作用。您可能需要使用karate.map(). 对于只读的 JsonPath,您可以使用karate.jsonPath()- 但很抱歉,这样的更新是不可能的。

有关更多信息,请参阅其他答案:https ://stackoverflow.com/a/54925754/143475


推荐阅读