Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Assertj比较提取的字符串数组_Java_Json_Assertj - Fatal编程技术网

Java Assertj比较提取的字符串数组

Java Assertj比较提取的字符串数组,java,json,assertj,Java,Json,Assertj,在我的例子中,我需要从两个不同的系统请求名称集,并验证它们是否相等(无论顺序如何)。很可能我不理解smth,但这段代码运行良好: assertThat(asList(assertThat(firstJSON) .flatExtracting("innerObject") .extracting("name")).stream().map(Object::toString).collect(Collectors.toList())) .containsExactlyElem

在我的例子中,我需要从两个不同的系统请求名称集,并验证它们是否相等(无论顺序如何)。很可能我不理解smth,但这段代码运行良好:

assertThat(asList(assertThat(firstJSON)
    .flatExtracting("innerObject")
    .extracting("name")).stream().map(Object::toString).collect(Collectors.toList()))
    .containsExactlyElementsOf(
            asList(assertThat(secondJSON)
                    .flatExtracting("innerObject")
                    .extracting("name")).stream().map(Object::toString).collect(Collectors.toList()));
,但它看起来很难看,我想要这样的东西:

assertThat(firstJSON)
    .flatExtracting("innerObject")
    .extracting("name")
    .containsExactlyElementsOf(
            assertThat(secondJSON)
                    .flatExtracting("innerObject")
                    .extracting("name"));
我尝试过很多函数,比如
isSubsetOf()
containsOnly()
,我也尝试过在这里和那里进行强制转换,但总是捕捉到一些异常/错误


如何比较它们?

在这里我会考虑使用AsjtJJ,它提供了良好的导航特性来断言JSON数据的子段。

它应该真正是<代码> AdvestTo(GETNAMESOOF(FrestJSON))。isEqualTo(GETNAMESOOF(第二JSON))< /代码>。我们可以帮助实现
getNamesOutOf()
,因为我们知道firstJSON和secondJSON的类型和结构。