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

空手道Json对象-嵌套数组对象的JSONPATH

段干弘扬
2023-03-14

我正在使用空手道JavaAPI处理Json对象。我将创建以下json:

{
    "a": [
        {
            "b": [
                {
                    "c": "hello"
                }
            ]
        }
    ]
}

当我尝试json时。设置(“$.a[0].b[0].c”,“hello”),我得到以下错误:

Exception in thread "main" java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class java.util.List (java.util.LinkedHashMap and java.util.List are in module java.base of loader 'bootstrap')
    at com.intuit.karate.Json.createPath(Json.java:232)
    at com.intuit.karate.Json.createPath(Json.java:246)
    at com.intuit.karate.Json.setInternal(Json.java:199)
    at com.intuit.karate.Json.set(Json.java:148)

json路径语法经过交叉检查是正确的,我可能缺少的任何其他点?

编辑:我正在使用v1。空手道核心1.0

共有1个答案

壤驷文华
2023-03-14

看起来像空手道中不支持如此多数组嵌套的错误。复制:

* def foo = {}
* set foo.a[0].b[0].c = 'hello'
* print foo

既然你热衷于空手道,也许你可以解决这个问题:)请随意提出问题。

以下是变通方法:

* def foo = {}
* set foo.a[0].b = [{ c: 'hello' }]
* print foo
 类似资料:
  • 问题内容: 有一个小问题上的话题,但他们都不来覆盖我的情况,因此我创建一个新的。 我有如下的JSON: 有没有办法解组嵌套的bar属性并将其直接分配给struct属性而不创建嵌套的struct? 我现在采用的解决方案如下: 这是简化版本,请忽略详细信息。如您所见,我希望能够解析并将其值分配给 我见过有人在使用地图,但这不是我的情况。除了一些特定的元素外,我基本上不关心(一个大对象)的内容。 在这种

  • 问题内容: 我必须遍历json数组对象。 它具有以下结构。 基本上我在做的是prod_1是产品的名称,并且prod_1的版本列表已填充在其中。 所以现在我想要的是产品的名称以及它的版本。 问题在于可能有很多产品和该产品下的许多版本。所以我需要可以在 javascript 中使用适当的循环结构来对其进行处理。 最好将循环将产品名称存储在一个变量中,将版本存储在另一个变量中,因为我需要对产品名称进行一

  • 我有一个带有嵌套字段的JSON: 我正在使用JSONPATH从嵌套中获取。 我已经将我的JSON文本粘贴到了http://jsonpath.com/这个网站上;并且在使用了这一行之后: 我得到了这个: 使用此行后: 我得到了这个: 我尝试返回(输出)的内容如下: 但是我找不到合适的语法来将这两个组合在一行中,并用一个JSONPATH查询返回它们。

  • 我只想扁平化嵌套JSON的属性,但仍然适用于输入数组中的所有对象 很难将这三个字段放在一个规范中(类型字段、geo字段、properties字段)。我编写了规范来单独完成每一个操作,但是当我将这些规范组合在一个对象中使用时,它会产生错误的输出--对象数组真的把它搞砸了。 期望输出:

  • 尝试使用所有独特的硬币进行选择过滤器,但无法正确到达其末尾。 在循环浏览数据时,我可以得到所有硬币的列表。 我还想使用Set方法和spread操作符来获得唯一的值,但我不知道如何组合所有这些。

  • 问题内容: 我对mongodb还是很陌生,有一件事我现在无法解决: 假设您有以下文档(简体): 哪个查询将返回json-object,其值等于“ value2”? 这意味着,我需要这个json-object: 当然,我已经尝试了很多可能的查询,但是没有一个返回正确的查询,例如 有人可以帮我看看我在做什么错吗? 谢谢! 问题答案: 使用位置运算符 输出量 使用聚合 输出 使用Java驱动程序 输出