如何在JsonAssertions中忽略含子节点与数组的指定节点?
用JsonUnit Assertj忽略指定节点下的所有内容(含数组及子节点)
你要忽略md.ignoreAllIn节点下的全部内容,不需要逐个字段配置,JsonUnit Assertj提供了更简洁的方式:
方法1:完全忽略整个节点(包括节点本身)
直接针对目标路径设置IGNORING模式,该节点及其下所有子元素、数组都会被跳过比对:
assertThatJson(actualJson) .when(path("md.ignoreAllIn"), then(IGNORING)) .isEqualTo(expectedJson);
方法2:保留节点但忽略所有子内容
如果需要保留ignoreAllIn节点的存在性,只忽略其内部所有子元素(包括数组、嵌套对象),可以用递归通配符**配合IGNORING_VALUES:
assertThatJson(actualJson) .when(path("md.ignoreAllIn**"), then(IGNORING_VALUES)) .isEqualTo(expectedJson);
你之前的写法问题在于路径指向错误(写了md.i[*]而非目标节点),且逐个字段配置效率太低。上面两种方法都能一步到位处理整个节点的忽略需求,不管节点内部有多少层级或数组元素。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

