数组 – 数组长度的Jsonpath

数组 – 数组长度的Jsonpath,第1张

概述鉴于json等 {"arr1" : [1,2,3], "arr2" : []} 在哪里知道有名为arr1和arr2的数组,是否有一个jsonpath表达式用于数组的长度,它将适用于空数组和非空数组? 我使用谷歌代码的JsonPath库做了几次尝试,注意: JsonPath.read(json, "arr1.length") 但它给出了一个错误,说数组没有属性. 我正在寻找解析为数组长度的单个字符串 鉴于Json等

{"arr1" : [1,2,3],"arr2" : []}

在哪里知道有名为arr1和arr2的数组,是否有一个Jsonpath表达式用于数组的长度,它将适用于空数组和非空数组?

我使用谷歌代码的JsonPath库做了几次尝试,注意:

JsonPath.read(Json,"arr1.length")

但它给出了一个错误,说数组没有属性.

我正在寻找解析为数组长度的单个字符串路径,而不是后续调用中间体,例如

JsonPath.read(Json,"arr1").length // useless to me

表达的任何复杂程度都是可以接受的.

对于上下文,我想提供一个带路径/值对的测试套件,这对于值很有用,但是我不能用这个模式断言数组大小.

解决方法 如果仅在断言时需要数组的长度,那么Json-path-assert工件可以与JsonPath一起使用.这是一个用Groovy编写的示例:

@Grab('com.jayway.Jsonpath:Json-path:0.9.1')@Grab('com.jayway.Jsonpath:Json-path-assert:0.9.1')import com.jayway.Jsonpath.JsonPathimport static com.jayway.Jsonassert.JsonAssert.*import static org.hamcrest.MatcherAssert.assertthatimport static org.hamcrest.Matchers.*def Json = /{ "arr1": [1,"arr2": [] }/with(Json).assertthat( "arr1",hasSize(3) )          .assertthat( "arr2",hasSize(0) )          .assertthat( "arr2",emptyCollection() )

验证断言是否因不同大小的数组而失败.最好的部分是Hamcrest’s Matcher API的使用,这为灵活多变的断言打开了大门.

无法从路径表达式AFAIK获得长度.

总结

以上是内存溢出为你收集整理的数组 – 数组长度的Jsonpath全部内容,希望文章能够帮你解决数组 – 数组长度的Jsonpath所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1234725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存