• Java中针对Yaml格式数据操作记录


    写在前面

    最近由于涉及的功能需要对Nacos配置信息通过代码实现发布,在此过程中,涉及到String字符串转换Map,Map转换为Yaml格式的字符串等方法,由于之前没有接触过此方面内容,所以特在此进行记录,以做备忘!

    1、Nacos获取配置

    Nacos获取配置信息,返回结果为String格式字符串,这里可以参看Nacos中文文档(地址为:https://nacos.io/zh-cn/docs/sdk.html )中Java SDK提供的方法,具体如下:

    try {
        String serverAddr = "{serverAddr}";
        String namespace = "{namespace}";
        String dataId = "{dataId}";
        String group = "{group}";
        Properties properties = new Properties();
        properties.put("serverAddr", serverAddr);
            properties.put("namespace", namespace);
        ConfigService configService = NacosFactory.createConfigService(properties);
        String content = configService.getConfig(dataId, group, 5000);
        System.out.println(content);
    } catch (NacosException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    由于Nacos配置信息为Yaml格式,简略信息如下:

     对于Nacos配置操作时,需要修改相关配置,因此需要将String格式转换为Map格式操作,此时,对应的Yaml操作如下:

    1> Maven项目中导入pom依赖

    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.26</version>
    </dependency>

    2> 使用Yaml方法操作,具体方法如下:

    Yaml yaml = new Yaml();
    //将Nacos配置信息content字符串转成 Map形式
    Map<String,Object> map = yaml.load(content);

    2、Nacos发布配置

    Nacos发布配置,需要将之前修改的Map格式的配置信息,转换为String格式进行发布,具体方法同样可以参看Nacos中文文档中Java SDK中的方法,具体如下:

    说明:由于Nacos配置格式为Yaml格式,这里nacos-client对应的依赖版本为1.4.1及以上版本,文档信息如下:

     这里的type变量定义,可以参看下面定义方式:

    private final String type = ConfigType.YAML.getType();

    Nacos配置发布方法如下:

    try {
        // 初始化配置服务,控制台通过示例代码自动获取下面参数
        String serverAddr = "{serverAddr}";
       String namespace = "{namespace}"; String dataId
    = "{dataId}"; String group = "{group}"; Properties properties = new Properties(); properties.put("serverAddr", serverAddr); properties.put("namespace", namespace); ConfigService configService = NacosFactory.createConfigService(properties); boolean isPublishOk = configService.publishConfig(dataId, group, "content", type); System.out.println(isPublishOk); } catch (NacosException e) { // TODO Auto-generated catch block e.printStackTrace(); }

    如上方法可见,发布配置内容为String 字符串格式,所以需要将Map格式转换为String格式,其中String格式内容需要按照Yaml格式展示,这里涉及到的方法如下:

    Yaml yaml = new Yaml();
    //将Map转换成 YAML 字符串
    String yamlStr = yaml.dumpAsMap(map);

    3、效果展示

    遨游在代码世界里的一条不知名的小船。。。。。。
  • 相关阅读:
    将Excel文件转换为Html
    怎样录制屏幕并将结果保存为Gif
    Spire.Pdf 的各种操作总结
    在C#中使用Spire.doc对word的操作总结
    使用Spire.Barcode程序库生成二维码
    【BZOJ1304】[CQOI2009]叶子的染色(动态规划)
    【BZOJ1303】[CQOI2009]中位数图(模拟)
    【BZOJ1297】[SCOI2009]迷路(矩阵快速幂)
    【BZOJ1296】[SCOI2009]粉刷匠(动态规划)
    【BZOJ1295】[SCOI2009]最长距离(最短路)
  • 原文地址:https://www.cnblogs.com/cndarren/p/14434893.html
Copyright © 2020-2023  润新知