import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.list.GrowthList;
import org.apache.commons.lang3.StringUtils;
import org.yaml.snakeyaml.Yaml;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author kittlen
* @date 2024-04-01 14:56
* @description
*/
@Slf4j
@NoArgsConstructor(access = lombok.AccessLevel.PRIVATE)
public class YamlParserUtil {
/**
* yml文件流转成单层map
* 转Properties 改变了顺序
*
* @param yamlContent
* @return
*/
public static Map<String, Object> yamlToFlattenedMap(String yamlContent) {
Yaml yaml = createYaml();
Map<String, Object> map = new HashMap<>();
for (Object object : yaml.loadAll(yamlContent)) {
if (object != null) {
map = asMap(object);
map = getFlattenedMap(map);
}
}
return map;
}
/**
* yml文件流转成多次嵌套map
*
* @param yamlContent
* @return
*/
public static Map<String, Object> yamlToMultilayerMap(String yamlContent) {
Yaml yaml = createYaml();
Map<String, Object> result = new LinkedHashMap<>();
for (Object object : yaml.loadAll(yamlContent)) {
if (object != null) {
result.putAll(asMap(object));
}
}
return result;
}
/**
* 多次嵌套map转成yml
*
* @param map
* @return
*/
public static String multilayerMapToYaml(Map<String, Object> map) {
Yaml yaml = createYaml();
return yaml.dumpAsMap(map);
}
/**
* 单层map转成yml
*
* @param map
* @return
*/
public static String flattenedMapToYaml(Map<String, Object> map) {
Yaml yaml = createYaml();
return yaml.dumpAsMap(flattenedMapToMultilayerMap(map));
}
/**
* 单层map转换多层map
*
* @param map
* @return
*/
private static Map<String, Object> flattenedMapToMultilayerMap(Map
java yaml文件与map转换工具类
于 2024-05-20 17:05:30 首次发布