当前位置: 首页 > 面试题库 >

用jsonpath计数成员?

李烨烁
2023-03-14
问题内容

是否可以使用JsonPath计算成员数量?

使用Spring MVC Test我正在测试生成的控制器

{"foo": "oof", "bar": "rab"}

standaloneSetup(new FooController(fooService)).build()
            .perform(get("/something").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
            .andExpect(jsonPath("$.foo").value("oof"))
            .andExpect(jsonPath("$.bar").value("rab"));

我想确保生成的json中没有其他成员。希望通过使用jsonPath计数它们。可能吗?也欢迎其他解决方案。


问题答案:

要测试 数组的 大小:jsonPath("$", hasSize(4))

要计算 对象的 成员:jsonPath("$.*", hasSize(4))

即测试API返回4个项目的 数组

接受值: [1,2,3,4]

mockMvc.perform(get(API_URL))
       .andExpect(jsonPath("$", hasSize(4)));

测试API是否返回包含2个成员的 对象

接受值: {"foo": "oof", "bar": "rab"}

mockMvc.perform(get(API_URL))
       .andExpect(jsonPath("$.*", hasSize(2)));

我正在使用Hamcrest版本1.3和Spring Test 3.2.5。

hasSize(int)javadoc

注意:您需要包括hamcrest-library依赖项,并且import static org.hamcrest.Matchers.*;hasSize()才能起作用。



 类似资料:
  • 是否可以使用JsonPath计算成员数? 使用spring mvc测试,我正在测试一个生成 具有 我想确保生成的json中没有其他成员。希望通过使用jsonPath计算它们。可能吗?也欢迎其他解决方案。

  • 我的工作对象是: SpringMVC测试 汉克雷斯特 JsonPath 我对服务器的响应有以下几点看法: 以下工作符合预期(有效): 我需要测试是1。确认存在1项。它再次确认以下内容: 我试过: 观察和

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

  • JsonPath 对于 JSON 来说相当于 XPATH 对于 XML。这是一个简单的从文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Java, Python 和 PHP

  • 我有一个JSON文件,里面有很多对象和数组以及数组中的对象。 我在JSON path-data . offer . travels[1]. routes中的routes对象中有一个源和目的地之间的路由列表。 在每个路由对象中都有一个名为支路的数组,其长度可以是1、2或3。我编写了一个带有for循环的方法,在路由对象中循环并返回第一个只有1条支路的路由索引。但是它给出了一个错误。 为此编写了一个fo

  • 问题内容: 我有一个简单的应用程序,它需要遍历一个大型数组(包含约2万个项目),并且在每个数组中,我解析一个子数组。每个项目如下所示: 我正在遍历每个项目。我要做的是首先读取长度,然后简单地遍历整个数组。但这非常慢(例如每秒1个项目)。 有没有优化的方法? 问题答案: 得到它了。多亏了Erwin,我可以一次将整个JSON解析成一个简单的样子: 然后我们可以简单地调用以访问循环中的特定项目: