空手道 Json 对象 - Json 嵌套数组对象的路径
Karate Json Object - JsonPaths for nested array objects
我正在使用空手道 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
我正在使用空手道 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