YML文件解析为JSON

本文介绍了如何使用SnakeYAML和Jackson库在Java中将YAML文件转换为JSON格式,提供了一个简单的YamlToJsonConverter类示例,展示了如何处理YAML文件并打印JSON输出。
摘要由CSDN通过智能技术生成

1.依赖导入

<dependencies>  
    <!-- SnakeYAML for parsing YAML -->  
    <dependency>  
        <groupId>org.yaml</groupId>  
        <artifactId>snakeyaml</artifactId>  
        <version>1.30</version>  
    </dependency>  
      
    <!-- Jackson for converting to JSON -->  
    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-databind</artifactId>  
        <version>2.13.0</version>  
    </dependency>  
</dependencies>
import com.fasterxml.jackson.databind.JsonNode;  
import com.fasterxml.jackson.databind.ObjectMapper;  
import com.fasterxml.jackson.databind.node.ObjectNode;  
import org.yaml.snakeyaml.Yaml;  
  
import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.Map;  
  
public class YamlToJsonConverter {  
    public static void main(String[] args) {  
        String yamlFilePath = "path/to/your/file.yml"; // 替换为你的YAML文件路径  
        String jsonString = convertYamlToJson(yamlFilePath);  
        System.out.println(jsonString);  
    }  
  
    public static String convertYamlToJson(String yamlFilePath) {  
        Yaml yaml = new Yaml();  
        ObjectMapper jsonMapper = new ObjectMapper();  
        try (InputStream in = new FileInputStream(yamlFilePath)) {  
            Map<String, Object> yamlMap = yaml.load(in);  
            ObjectNode objectNode = jsonMapper.valueToTree(yamlMap);  
            return jsonMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectNode);  
        } catch (IOException e) {  
            throw new RuntimeException("Error reading or parsing YAML file", e);  
        }  
    }  
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值