2017-09-27 16 views
1

私は、以下に述べるように 'Example' Pojoクラスを持っています。 Jacksonは、ExampleクラスのインスタンスをJacksonを使用してYAMLファイルに保存することができます。ジャクソンを使用してYAMLにJavaオブジェクトインスタンスを書き込む

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

あなたがここでの例を見ることができます。https: //github.com/FasterXML/jackson-dataformats-text/blob/master/yaml/src/test/java/com/fasterxml/jackson/dataformat/yaml/SimpleGenerationTest.java#L79 –

+0

SnakeYamlはこれを行うことができます独自のものであり、ジャクソンを使用する場合よりも、より多くの支配権を持ちます。 Jacksonが要件でない場合は、それをドロップしてSnakeYamlを直接使用してください。 – flyx

答えて

3

ジャクソンmodule that supports YAMLを有しています。その後、あなたは次のようにそれを使用することができ、あなたのプロジェクトにrequired dependencyを追加していることを確認してください:

// 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); 

代わりに文字列として、あなたのオブジェクトを書き込むことができます。

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

このコードを使用すると、ファイルの先頭に行が追加されます(---というコメント行)?どのようにこの拳の行を削除することができますか? – M2E67

+0

@ M2E67これらの3つのダッシュ( '---')は完全に問題ありません。これはYAMLでストリーム内のドキュメントを区切るために使用されます。 –

+0

どのようにそれを書くことを防ぐことができますか? – M2E67

関連する問題