2017-09-27 5 views
1

Ich habe eine "Beispiel" Pojo-Klasse wie unten erwähnt. Kann jemand eine Instanz der Example-Klasse in eine YAML-Datei mit Jackson speichern.Schreiben von Java-Objektinstanzen in YAML mit Jackson

public class Example { 

String name; 
int 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; 
} 

}

+0

Sie ein Beispiel hier sehen können: https: //github.com/FasterXML/jackson-dataformats-text/blob/master/yaml/src/test/java/com/fasterxml/jackson/dataformat/yaml/SimpleGenerationTest.java#L79 –

+0

Nur gesagt, SnakeYaml kann dies tun es ist eine eigene und du hast mehr Kontrolle darüber, als wenn du Jackson benutzt. Wenn Jackson keine Voraussetzung ist, lassen Sie es fallen und verwenden Sie SnakeYaml direkt. – flyx

Antwort

3

Jackson hat eine module that supports YAML. Stellen Sie sicher, dass Sie die required dependency zu Ihrem Projekt hinzufügen, dann können Sie es wie folgt:

// Create an ObjectMapper mapper for YAML 
ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); 

// Write object as YAML file 
mapper.writeValue(new File("/path/to/yaml/file"), example); 

Alternativ Sie Ihr Objekt als String schreiben:

// Write object as YAML string 
String yaml = mapper.writeValueAsString(example); 
+0

Wenn ich diesen Code verwende, fügen Sie eine Zeile in der ersten Datei (Kommentarzeile als ---) ?? Wie kann diese erste Linie entfernt werden? – M2E67

+0

@ M2E67 Diese drei Striche ('---') sind völlig in Ordnung. Es wird in YAML verwendet, um Dokumente innerhalb eines Streams zu trennen. –

+0

wie kann man verhindern, es zu schreiben ?? – M2E67