如何在Java中比较yaml-文件的键和内容?[已关闭]

问题描述 投票:0回答:1

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

我找到了一个链接,他们是如何用ruby描述的。如何比较yaml文件中的键?

但我正在寻找一个Java框架。

如果结果能像 "git diff "命令一样显示出来,那就更好了。

谢谢,谢谢

java spring yaml string-comparison snakeyaml
1个回答
3
投票

你可以通过使用 补丁 和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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.