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;
}
java中map转yaml格式字符 properties字符内容转map
于 2022-07-07 11:25:29 首次发布