Java:
Arbeiten mit YAML
Wie geht das:
In Java können Sie mit YAML-Dateien arbeiten, indem Sie Drittanbieter-Bibliotheken verwenden, da die Java Standard Edition keine integrierte Unterstützung für YAML bietet. Eine beliebte Bibliothek ist SnakeYAML, die das Parsen und Generieren von YAML-Daten erleichtert.
SnakeYAML einrichten
Fügen Sie zunächst SnakeYAML Ihrem Projekt hinzu. Wenn Sie Maven verwenden, fügen Sie die folgende Abhängigkeit zu Ihrer pom.xml
hinzu:
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.30</version>
</dependency>
YAML lesen
import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Map;
public class ReadYamlExample {
public static void main(String[] args) {
Yaml yaml = new Yaml();
try (InputStream inputStream = ReadYamlExample.class
.getClassLoader()
.getResourceAsStream("config.yml")) {
Map<String, Object> data = yaml.load(inputStream);
System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Angenommen, config.yml
sieht so aus:
name: Beispiel
version: 1.0
features:
- login
- signup
Die Ausgabe wird sein:
{name=Beispiel, version=1.0, features=[login, signup]}
YAML schreiben
Um ein YAML aus Java-Objekten zu generieren, verwenden Sie die dump
-Methode, die von SnakeYAML bereitgestellt wird:
import org.yaml.snakeyaml.Yaml;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;
public class WriteYamlExample {
public static void main(String[] args) {
Map<String, Object> data = new LinkedHashMap<>();
data.put("name", "Beispiel");
data.put("version", 1.0);
data.put("features", Arrays.asList("login", "signup"));
Yaml yaml = new Yaml();
String output = yaml.dump(data);
System.out.println(output);
}
}
Dies wird den folgenden YAML-Inhalt generieren und ausgeben:
name: Beispiel
version: 1.0
features:
- login
- signup
Indem sie SnakeYAML nutzen, können Java-Entwickler das Parsen und Generieren von YAML leicht in ihre Anwendungen integrieren, wobei sie von der Lesbarkeit und Einfachheit von YAML für Konfigurations- und Datenaustauschzwecke profitieren.