Java:
Werken met YAML
Hoe te:
Om YAML in Java te gebruiken, laten we snakeyaml
gebruiken, een populaire bibliotheek.
Voeg eerst de afhankelijkheid toe aan je pom.xml
:
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.29</version>
</dependency>
Nu, een YAML-bestand lezen:
import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Map;
public class YamlReader {
public static void main(String[] args) {
Yaml yaml = new Yaml();
try (InputStream in = YamlReader.class
.getClassLoader()
.getResourceAsStream("config.yaml")) {
Map<String, Object> data = yaml.load(in);
System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Stel dat config.yaml
er zo uitziet:
version: '1.0'
services:
webapp:
build: .
ports:
- "5000:5000"
De uitvoer zal een Map
-representatie van uw YAML zijn:
{version=1.0, services={webapp={build=., ports=[5000:5000]}}}
Nu, laten we YAML schrijven:
import org.yaml.snakeyaml.Yaml;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class YamlWriter {
public static void main(String[] args) {
Yaml yaml = new Yaml();
Map<String, Object> data = new HashMap<>();
data.put("name", "myapp");
data.put("version", "2.0");
try (FileWriter writer = new FileWriter("output.yaml")) {
yaml.dump(data, writer);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Controleer output.yaml
om de nieuwe YAML-inhoud te zien:
name: myapp
version: '2.0'
Dieper duiken
YAML kwam begin jaren 2000 op de markt als een alternatief voor XML voor eenvoudigere gegevensstructurering. Terwijl de opkomst van JSON het voor API-communicatie overschaduwde, blijft YAML’s gebruiksvriendelijkheid populair voor configuraties. Dezelfde gegevens, maar JSON en TOML zijn alternatieven voor YAML, afhankelijk van gebruikssituaties. Een YAML waarschuwing: tabbladen zijn niet toegestaan voor inspringing; alleen spaties.
Zie ook
Verken verder met deze bronnen:
- Officiële YAML Specificatie: https://yaml.org/spec/1.2.2/
- snakeyaml GitHub Repo: https://github.com/asomov/snakeyaml
- YAML vs JSON: https://phoenixnap.com/kb/yaml-vs-json
- YAML Lint, om uw YAML-bestanden te valideren: http://www.yamllint.com/