karate - 空手道 Json 对象 - 嵌套数组对象的 JsonPaths
问题描述
我正在使用空手道java-api来处理 Json 对象。我有以下要创建的json:
{
"a": [
{
"b": [
{
"c": "hello"
}
]
}
]
}
当我尝试时json.set("$.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 路径语法在交叉检查时是正确的,我可能遗漏的任何其他点?
编辑:我正在使用 karate-core v1.1.0
解决方案
看起来像空手道中的一个错误,其中不支持如此多的数组嵌套。要复制:
* def foo = {}
* set foo.a[0].b[0].c = 'hello'
* print foo
既然你热衷于为空手道做贡献,也许你可以解决这个问题 :) 随意打开一个问题。
这是解决方法:
* def foo = {}
* set foo.a[0].b = [{ c: 'hello' }]
* print foo
推荐阅读
- javascript - 通过获取 data-id 创建的运行变量
- ios - 更改应用程序中所有 UIAlertController 的字体
- c# - 嵌套的switch语句不访问内部switch case c#
- mysql - 在 MySQL 中循环使用多行的 SQL 结果
- couchbase - Laravel 5.6 控制器未加载模型
- php - 如何在php中的while循环中回显一次
- java - 在 Spring 中实现策略设计模式的最佳方法
- c# - 如何使用 dotnet Logging 将 Json 对象存储到 ELK
- c# - DataGrid 不允许我在输入一些值后删除值
- node.js - 在 Node.js 中添加转义时无法读取属性长度