我正在测试一个API,并从数据库中获取所有数据。我将响应保存为
MvcResult result = mockMvc.perform(..some code..).andReturn();我得到一个json作为响应。我想要得到json数组的长度。所以,如果我在DB中有2行,我想得到2作为结果。
或者,是否有其他方法可以计算数据库中存在的行数。
发布于 2019-08-06 19:25:22
如果你想得到json数组长度,
1.如果导入org.json.simple.JSONArray,则可以使用JSONArray.size()
2.如果导入org.json.JSONArray,则可以使用JSONArray.length()
发布于 2019-08-06 19:46:28
由于您使用的是MockMvc,而不是使用andReturn()返回,因此您可以使用JSONPath支持,如下所示:
  mvc.perform( MockMvcRequestBuilders
  .get("/resource")
  .accept(MediaType.APPLICATION_JSON))
  .andExpect(status().isOk())
  .andExpect(MockMvcResultMatchers.jsonPath("$.length").value(2))发布于 2021-02-11 04:53:27
假设您的响应是这样的:
{
  result : [
     {
       "field1": "a",
       "field2": "b"
     },
     {
       "field1": "c",
       "field2": "d"
     }
  ]
}在本例中,您将使用MockMvc编写如下断言:
mvc.perform(MockMvcRequestBuilders
.get("/resource")
.accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.result.length()").value(2))https://stackoverflow.com/questions/57374306
复制相似问题