我试图用Spring Boot测试为restendpoint编写单元测试,进展顺利,但是当我试图用< code>jsonPath断言json响应中的对象时,即使内容完全相同,也会抛出AssertionError。
示例 Json
{
"status": 200,
"data": [
{
"id": 1,
"placed_by": 1,
"weight": 0.1,
"weight_metric": "KG",
"sent_on": null,
"delivered_on": null,
"status": "PLACED",
"from": "1 string, string, string, string",
"to": "1 string, string, string, string",
"current_location": "1 string, string, string, string"
}
]
}
科特林中的代码
mockMvc.perform(
get("/api/v1/stuff")
.contentType(MediaType.APPLICATION_JSON_UTF8)
).andExpect(status().isOk)
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(jsonPath("\$.status").value(HttpStatus.OK.value()))
.andExpect(jsonPath("\$.data.[0]").value(equalTo(stuffDTO.asJsonString())))
点击“查看差异”按钮
如何将 JSON 中的对象与 jsonPath 匹配?我需要能够匹配一个对象,因为该对象可以包含许多字段,并且它将是一个PITA来单独匹配它们
我遇到了看起来相同的问题,尽管很难说不知道您的<code>asJsonString</code>函数是什么。此外,我使用的是Java,而不是Kotlin。如果是同一问题:
这是由于<code>jsonPath(表达式)
private <T> T asParsedJson(Object obj) throws JsonProcessingException {
String json = new ObjectMapper().writeValueAsString(obj);
return JsonPath.read(json, "$");
}
Then .andExpect(jsonPath(“\$.data.[0]“).value(equalTo(asParsedJson(stuffDTO)))))
应该工作。
我有一个带有嵌套字段的JSON: 我正在使用JSONPATH从嵌套中获取。 我已经将我的JSON文本粘贴到了http://jsonpath.com/这个网站上;并且在使用了这一行之后: 我得到了这个: 使用此行后: 我得到了这个: 我尝试返回(输出)的内容如下: 但是我找不到合适的语法来将这两个组合在一行中,并用一个JSONPATH查询返回它们。
我试图从json文件中获取一个对象数组,但遇到了一个问题。 我应该使用什么路径来获取项目中的所有项目(item0、item1、item2…)? 你能给我一个怎么做的建议吗。 Json 示例 从items对象中过滤item的最佳方法,但我不知道如何使用json路径。
本文向大家介绍JavaScript中的对象与JSON,包括了JavaScript中的对象与JSON的使用技巧和注意事项,需要的朋友参考一下 简介 JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。 JSON是一种数据交换格式,像XML和YAML一样是一种在各种不同语言间传递结构化信息的方式。从另一方面来说
我正在寻找为json对象中的所有字段打印jsonpath的Java API。需求的第一部分是,对于给定的json对象(或字符串)- 它应该以key-value的方式打印所有属性,其中key是字段的jsonpath。 输出应该如下所示- 等等。这将用于匹配来自另一个json对象的值(我的第二个需求)。 我找到了一个APIhttps://github.com/json-path/JsonPath,它有
我正在使用空手道JavaAPI处理Json对象。我将创建以下json: 当我尝试,我得到以下错误: json路径语法经过交叉检查是正确的,我可能缺少的任何其他点? 编辑:我正在使用v1。空手道核心1.0
在JMeter中,我想检查从服务器接收到的JSON数组中的对象数。 例如,在一个特定的请求中,我期望一个包含5个对象的数组。 [{...},{...},{...},{...},{...}] 读完这个:使用jsonpath?计数成员后,我尝试使用以下JSON路径断言: JSON路径:$ 然而,这似乎没有正常工作。当我真的在数组中收到5个对象时,响应断言说它不匹配。 我做错了什么?或者我还能怎么做?