如何比较 Java 中的键和 yaml 文件的内容?

How to compare the keys and the content of a yaml-file in Java?

我想找一个框架, 它能够比较两个 yaml 文件的内容。

我找到了 link,他们在 ruby 中是如何描述它的。 How to compare keys in yaml files?

但我正在为它寻找 Java 框架。

如果结果能像"git diff"命令那样显示就好了。

谢谢

您可以使用 zjsonpatch 和 jackson-yaml 进行比较...

添加以下依赖项:

implementation 'com.flipkart.zjsonpatch:zjsonpatch:0.4.10'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8'

试试这个:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.flipkart.zjsonpatch.JsonDiff;

import java.io.File;

public class Main {

    public static void main(String[] args) throws Exception{
        ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
        JsonNode file1 = objectMapper.readTree(new File("/your/file/path/file1.yml"));
        JsonNode file2 = objectMapper.readTree(new File("/your/file/path/file2.yml"));
        JsonNode patch = JsonDiff.asJson(file1, file2);
        String diffs = patch.toString();
        System.out.println(diffs);
    }
}