当前位置: 首页 > 知识库问答 >
问题:

在空手道中使用jsonpath检索json数组对象时出错

夏立果
2023-03-14

使用jsonpath检索值A、B、C时出错

错误:

karate.jsonPath(response, "$.code[*~]"), com.jayway.jsonpath.InvalidPathException: Expected wildcard token to end with ']'
    < li>def value =空手道. jsonPath(响应," $。代码[* ~]" < li>def value_expected = ["A "," B "," C"] < li >匹配值仅包含value_expected

回应如下:

 {
      "code": {
        "A": [
          {
            "codeValue": 510575,
            "Key": "XYZ"
          }
        ],
        "B": [
          {
            "codeValue": 510575,
            "Key": "XYZ"
          }
        ],
        "C": [
          {
            "codeValue": 510575,
            "Key": "XYZ"
          }
        ]
      }
    }

共有1个答案

湛博易
2023-03-14

我不推荐JsonPath用于这种情况,例如获取密钥,这非常困难。请使用Karate JSON转换:github

* def keys = []
* def fun = function(k, v){ karate.appendTo(keys, k) }
* karate.forEach(response.code, fun)
* match keys == ['A', 'B', 'C']
 类似资料:
  • 我正在使用空手道JavaAPI处理Json对象。我将创建以下json: 当我尝试,我得到以下错误: json路径语法经过交叉检查是正确的,我可能缺少的任何其他点? 编辑:我正在使用v1。空手道核心1.0

  • 我有一个问题。我想获取pin码,其中street=='abc strt'<我正在使用Jaway来实现这一点 jaywayxpath:,正在返回

  • 在JMeter中,我想检查从服务器接收到的JSON数组中的对象数。 例如,在一个特定的请求中,我期望一个包含5个对象的数组。 [{...},{...},{...},{...},{...}] 读完这个:使用jsonpath?计数成员后,我尝试使用以下JSON路径断言: JSON路径:$ 然而,这似乎没有正常工作。当我真的在数组中收到5个对象时,响应断言说它不匹配。 我做错了什么?或者我还能怎么做?

  • 试图从我的php api中获取一个值,在android上,使用截取。。。我的api运行良好,返回了我想要的值,但在我的android上,我似乎可以将值保存在一个变量上。 这是我的php脚本 在我的android studio上,我尝试像这样获取值,我发送3个值插入到数据库中,然后我想将我插入的行的id返回到android。我看过很多关于stackoverflow的答案,但我似乎无法理解和解决我的问

  • 关于将对象数组传递给jsp这个问题,您如何在jsp中检索结果? 问题是,我的Javascript中有以下内容: 我如何恢复数据在eval.jsp.我尝试 但是返回的值是。当然,这不是传递的值,可以在标题中看到(使用Chrome)。

  • 问题内容: 我有一个返回带有单个属性的JSON对象的请求,该属性是一个数组。如何测试数组是否为空? 使用jQuery代码,例如: 我可以用什么代替if(data.RoleOwners == [])来测试RoleOwners是否为空数组? 谢谢,马特 问题答案:

  • 问题内容: 我在这里遇到了一个令人费解的问题,在这里我使用Backbone中的集合检索了JSON对象。这是该对象的外观: 我要处理的数据是根据特定属性(例如Venue.Name或Date属性)过滤的(它们在对象中的深度不同,对于某些其他数据,其深度可能超过两个层次) 。我在Backbone集合中有以下代码来过滤并返回一个新集合,其内容已适当过滤: 这使我可以在一个属性中指定要针对任何对象深度使用的

  • 任务: 有3个endpoint: 第一个返回请求的随机数据到另外两个endpoint。 另外两个endpoint使用不同的DBs操作,但或多或少使用相似的数据。 我需要验证来自一个endpoint的响应是否匹配来自另一个endpoint的响应,两个endpoint发送相同的数据,但顺序不同。 例如。: endpoint“A”: endpoint“B”: endpointA_response.ite