问题标签 [jsonassert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
322 浏览

json - 使用 REST-Assured 的 ifValidationFails 和 JSONAssert

我决定使用REST-Assured来测试 REST 服务。结果(大部分)是 JSON 和 XML 文档。对于检查 JSON,我发现JSONassert非常有用。

我不想比较身体的各个部位,而是比较完整的身体反应。因此,REST-Assured 文档中的示例不是很有帮助,因为它们提取了响应正文的一部分。

目前,我正在提取身体并在之后比较身体:

问题是这ifValidationFails()没有任何意义,因为asString()总是成功的。

现在我想知道如何将JSONAssert.assertEquals和 Hamcrest包含assertThatgiven()REST-Assured 的方法中以启用失败验证的日志记录。

完整的源代码可在Eclipse Winery 的存储库中获得。

0 投票
1 回答
160 浏览

java - JSONCompareResult 不适用于原始类型整数的 GSON。为什么?

当我遇到这个问题时,我正在使用GsonJSONAssert库。

我有以下函数来比较两个整数:

当我运行时runCompareInts(1, 2),我得到"Objects are same."了结果,这不应该是这种情况。

我发现new Gson().toJson(1)返回 String "1",这是一个有效的 JSON 字符串,因此比较应该正确进行并进入else块。

比较整数 usingJSONAssert.assertNotEquals("1", "2", true)不会导致任何异常。这意味着 Gson 转换值不是问题。

谁能告诉我我的runCompareInts()功能有什么错误?谢谢你。

编辑:JSONAssert.assertNotEquals(new Gson().toJson(source), new Gson().toJson(target), true)也可以正常工作。

0 投票
2 回答
6022 浏览

java - 比较Java中的两个JSON时忽略数组中的特定节点

我想比较 Java 8 中的两个 JSON 字符串是否相等,但忽略特定的已知节点,这些节点包含预期不同的值并且是可以容忍的差异,例如时间戳。目前使用来自 org.SkyScreamer 的 JSONAssert v1.5.0,我能够“忽略”其中一些节点,但不能“忽略”数组中的节点。

我想要扩展我当前的 JSONComparator 以包含一个自定义,它的第一个“路径”参数具有一个数组地址。

下面的代码是我试图证明解决方案的尝试;除了 anArray[].id 值之外,预期/实际 JSON 字符串都是相同的。我希望此测试通过,但失败并出现错误:java.lang.AssertionError: anArray[0] 找不到元素 {"id":"valueA"} 的匹配项

0 投票
1 回答
1516 浏览

rest-assured - 通过 RESTAssured 对部分 JSON 使用 JSONAssert

我能够使用 RESTAssured 从服务中检索 JSON。

我想使用 JSONPath 功能来提取 JSON,然后使用 JSONAssert 进行比较。

这是我的例子:

方法一——使用 JSONPath 获取 JSONObject

如何让 JSONPath 返回 JSONAssert 可以使用的 JSONObject?

在代码示例中:

这会返回一个java.util.ArrayList. 这如何与 JSONAssert 一起使用来与预期的 JSON 进行比较?

方法 2 - 使用 JSONParser 解析提取的数据

如果我这样做data.toString(),这将返回一个由于缺少对带有空格字符串的字符串值的引号处理而无法解析的字符串:

结果:

方法 3 - 使用 JSON 模式验证

是否可以仅从 JSON 中提取data属性并在该部分上针对 JSON Schema 运行该属性?

注意:返回的整个 JSON 非常大。我只想从中验证data属性。

执行 JSON 模式验证的示例会仅查找 JSON 中的data属性吗?

谢谢;

0 投票
1 回答
1342 浏览

java - 在 JSONAssert java 中使用 REGEX 验证 JSON 字符串

我将预期的 json 字符串存储在资源下的 json 文件中,如下所示。json 字符串由正则表达式组成。我正在使用 JSONAssert 库来比较两个 json 字符串。

我的实际响应包含这种格式的时间戳2018-11-13T04:10:11.233+0000

总是在正则表达式上给出以下错误

关于这个错误有什么建议吗?

0 投票
1 回答
1042 浏览

java - 使用 JSONAssert 检查 JSON 数组中是否存在项目

我有一个类似于这样的 JSONObject:

如果我想使用 JSONAssert 来检查 item {"name":"678"} 是否存在并且我不知道 item 的 order 和 "external" 数组中的 item 数量,我应该如何在 Java 中执行?

似乎 ArrayValueMatcher 应该是要走的路,但我就是无法让它工作。

请帮忙

0 投票
1 回答
3197 浏览

java - JSONAssert.assertEquals:比较时忽略多个字段

我有以下 JSON 结构

在我的 JUNIT 课程中,我将不得不比较两个具有上述结构的 JSON 文件。但是我想忽略字段address.numberaddress.code. 我知道我可以使用下面的代码来忽略一个字段,但是如何更改它以适应我的要求?

查看实现,我们提供给自定义方法的正则表达式似乎被修改了,我无法想出path可以作为OR条件的参数的值。

任何建议都非常感谢

谢谢!

0 投票
1 回答
145 浏览

jmeter - jmeter:评估 JSON 值的值

我正在尝试使用 JMeter 中的 JSON 断言测试我的 API 响应,但无法找到如何实现它。API返回2个值,我需要检查这两个值之间的差异是否一致

API 响应:

在此处输入图像描述

我已经像上面那样尝试过,但它似乎是错误的,因为它是一个 JSONPath 变量。谁能指导如何评估这些价值观?有可能做到这一点吗?

0 投票
1 回答
114 浏览

java - 如何使用单个比较的多个 json 路径过滤comapre 2 json?

有 2 个 json,需要在两个 json 上应用多个路径。然后这些 json 应该通过一些断言在测试中进行比较。ide解决方案应该是:

什么不是解决方案: 1. 任何这样的代码:

需要过滤 jsons 并使用所有现有路径显示/失败。显示多个路径不匹配的错误。不是一一的json路径匹配。

  1. org.assertj.core.api.SoftAssertions- 也不是一个解决方案,因为很难从消息中了解哪些资产失败了。

  2. harcrest allOf/anyOf也不是一个解决方案,因为它在第一次匹配的断言上失败,而不是结合它们。

PS任何关于 json diff 可视化的建议都是受欢迎的。理想的方式是这样的。(但这是在 javascript 中)

0 投票
0 回答
227 浏览

java - 使用正则表达式的 jsonAssert 嵌套 Json 验证

我需要针对正则表达式验证嵌套 json 的放心响应

这适用于没有嵌套 json 对象的 json。

不知道如何以类似的方式验证嵌套的 json