【Java】yml ( ヤムル ) ファイルを読み込んだ情報をオブジェクトクラスに格納する
ライブラリはSnakeYAMLを使用していきます。
【Java】yml ( ヤムル ) ファイルを読み込んだ情報をオブジェクトクラスに格納
今回使用した環境
インターネット接続可能のオンラインの環境
64 ビット オペレーティング システム
Windows 10 22H2
JAVA 17
SnakeYAML 1.33
ソースコード
Mavenを使用しているのでまずはpom.xmlです。
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.33</version>
</dependency>
読み込みするymlファイルはこんな感じです。ymlファイルの文字コードはutf-8としています。
※文字コードをSJISにするとコメントの日本語表記が悪さをして読み込み時にYAMLExceptionの例外発生となります。
# 料理ID
id: 0001
# 料理名
name: Curry Rice
# 食べた日
lastDate: 1603-03-24
# 料理を食べる人たち
people:
- "Nobunaga"
- "Hideyoshi"
- "Ieyasu"
# 材料
materials:
"potatoes": 3
"carrot": 1
"onion": 2
次にmainメソッドです。ymlファイルを読み込み、コンソールに出力しているだけです。
import org.yaml.snakeyaml.Yaml;
public class YamlTest {
public static void main(String[] args) {
Yaml yaml = new Yaml();
// ymlファイル読み込み
Recipe recipe = yaml.loadAs(ClassLoader.getSystemResourceAsStream("recipe.yml"),
Recipe.class);
// 読み込んだ内容の出力
System.out.println(recipe.getId());
System.out.println(recipe.getName());
System.out.println(recipe.getLastDate());
for (String man : recipe.getPeople()) {
System.out.println(man);
}
for (String key : recipe.getMaterials().keySet()) {
System.out.println(recipe.getMaterials().get(key));
}
}
}
次はymlを読み込んだ内容を格納するRecipeクラスです。
import java.util.Date;
import java.util.List;
import java.util.Map;
public class Recipe {
private String id;
private String name;
private Date lastDate;
private List<String> people;
private Map<String, Object> materials;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getLastDate() {
return lastDate;
}
public void setLastDate(Date lastDate) {
this.lastDate = lastDate;
}
public List<String> getPeople() {
return people;
}
public void setPeople(List<String> people) {
this.people = people;
}
public Map<String, Object> getMaterials() {
return materials;
}
public void setMaterials(Map<String, Object> materials) {
this.materials = materials;
}
}
動作確認
最後に動作確認です。ymlファイルがオブジェクトクラスに格納され、読み取れていることが確認できます。
以上となります。
ここまでお読みいただきありがとうございました。