SnakeYAML 是一个用于解析和编写 YAML 格式数据的 Java 库。要从 YAML 中获取 Map<String, List<Data>>
类型的数据,你需要定义一个 Data
类来表示列表中的元素,然后使用 SnakeYAML 来解析 YAML 字符串并将其转换为 Java 对象。
以下是一个简单的示例,展示了如何使用 SnakeYAML 来完成这个任务:
首先,定义一个 Data
类,这个类将表示列表中的每个元素。
public class Data {
private String name;
private int value;
// 构造函数、getter 和 setter 方法
public Data() {}
public Data(String name, int value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
接下来,使用 SnakeYAML 解析 YAML 字符串并将其转换为 Map<String, List<Data>>
。
import org.yaml.snakeyaml.Yaml;
import java.util.List;
import java.util.Map;
public class YamlParser {
public static void main(String[] args) {
String yamlString = "key1:\n" +
" - name: item1\n" +
" value: 10\n" +
" - name: item2\n" +
" value: 20\n" +
"key2:\n" +
" - name: item3\n" +
" value: 30";
Yaml yaml = new Yaml();
Map<String, List<Data>> dataMap = yaml.load(yamlString);
// 打印结果
for (Map.Entry<String, List<Data>> entry : dataMap.entrySet()) {
System.out.println("Key: " + entry.getKey());
for (Data data : entry.getValue()) {
System.out.println(" Name: " + data.getName() + ", Value: " + data.getValue());
}
}
}
}
运行上述代码,你将看到控制台输出解析后的 Map<String, List<Data>>
数据。
Data
类中有更多的字段,确保 YAML 字符串中也包含了这些字段。Data
类的结构相匹配。通过这种方式,你可以使用 SnakeYAML 从 YAML 文件或字符串中提取复杂的数据结构,如 Map<String, List<Data>>
。
领取专属 10元无门槛券
手把手带您无忧上云