C Sharpの基礎 - YAML

提供:MochiuWiki : SUSE, EC, PCB
2024年9月18日 (水) 22:57時点におけるWiki (トーク | 投稿記録)による版 (→‎概要)
ナビゲーションに移動 検索に移動

概要

YAML (YAML Ain't Markup Language) は、人間にとって読み書きし易いデータシリアライゼーション形式である。

C#でYAMLファイルを扱う場合は、一般的には、サードパーティ製ライブラリであるYamlDotNetライブラリ等を使用する。

YAMLファイルの基本構造は、キーと値のペアで構成されている。
これは階層構造を持つことができ、インデントを使用して表現する。

 name: John Doe
 age: 30
 address:
   street: 123 Main St
   city: Anytown


YAMLのメリットとして、JSONやXMLと比べて冗長性が低く、より直感的な記述が可能である。
また、コメントを含められるため、設定ファイルとして使用する場合に説明を加えやすいという特徴がある。

C#でYAMLファイルを使用する一般的なケースとしては、
アプリケーション設定の管理、データのシリアライゼーション / デシリアライゼーション、構造化されたデータの保存等が挙げられる。

YAMLの使用する場合は、インデントに注意が必要である。
スペースの数が正確でない場合は、意図しない構造になる可能性がある。
また、複雑なデータ構造を扱う場合は、カスタムクラスを定義してデシリアライズすると、より型安全なコードを記述することができる。

YAMLは柔軟性が高いため、様々なデータ形式に対応できるが、セキュリティ上の懸念から、信頼できないソースからのYAMLデータを扱う場合は注意が必要である。


YamlDotNetライブラリ

YAMLファイルの読み込み

以下の例では、YamlDotNetライブラリを使用して、YAMLファイルを読み込んでいる。

 var deserializer = new DeserializerBuilder().Build();
 var yaml         = File.ReadAllText("config.yaml");
 var result       = deserializer.Deserialize<Dictionary<string, object>>(yaml);