java中map转yaml格式字符 properties字符内容转map

public static void main(String[] args) {
        String ymlStr = "age: 23\n" +
                "children: \n" +
                "  - \n" +
                "    age: 8\n" +
                "    name: mary1\n" +
                "    sex: man\n" +
                "  - \n" +
                "    age: 9\n" +
                "    name: simon2\n" +
                "    sex: fatel\n" +
                "name: simon.zhang\n" +
                "sex: man";
        /*yml配置文件转为map*/
        Map<String, Object> yamlStrToMap = getYamlStrToMap(ymlStr);
        System.out.println(yamlStrToMap.toString());
        Yaml yaml = new Yaml(OPTIONS);
        /* map转为yaml数据格式*/
        String dump = yaml.dump(yamlStrToMap);
        System.out.println(dump);

        try {
            String properStr = "com.chenheng.blog.name=陈大大\n" +
                    "com.chenheng.blog.title=Spring Boot学习教程\n" +
                    "com.chenheng.blog.desc=${com.chenheng.blog.name}\n" +
                    "#随机字符串\n" +
                    "com.chenheng.blog.value=${random.value}\n" +
                    "#随机int\n" +
                    "com.chenheng.blog.number=${random.int}\n" +
                    "#随机long\n" +
                    "com.chenheng.blog.bignumber=${random.long}\n" +
                    "#10以内的随机数\n" +
                    "com.chenheng.blog.test1=${random.int(10)}\n" +
                    "#10-20的随机数\n" +
                    "com.chenheng.blog.test2=${random.int[10,20]}\n";
            /*出去注释内容*/
            String reg = "[#](.*?)[\\n]";
            properStr = properStr.replaceAll(reg, "");
            System.out.println(properStr);
            Properties mappingProperties = new Properties();
            /*InputStreamReader放在含有中文的内容转为ByteArrayInputStream乱码*/
            mappingProperties.load(new InputStreamReader(new ByteArrayInputStream(properStr.getBytes(StandardCharsets.UTF_8))));
            Map<String, String> map = new HashMap<String, String>();
            Enumeration en = mappingProperties.propertyNames();
            while (en.hasMoreElements()) {
                String key = (String) en.nextElement();
                String property = new String(mappingProperties.getProperty(key).getBytes("utf-8"), "utf-8");
                map.put(key, property);
            }
            System.out.println(map);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 将字符串转换为map
     *
     * @param ymlStr
     * @return map
     */
    public static Map<String, Object> getYamlStrToMap(String ymlStr) {
        LinkedHashMap<String, Object> yamls = new LinkedHashMap<>();
        Yaml yaml = new Yaml();
        try {
            yamls = yaml.loadAs(ymlStr, LinkedHashMap.class);
        } catch (Exception e) {
            logger.error("yml字符串转换异常", e);
        }
        return yamls;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值