「C Sharpの基礎 - YAML」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == <br><br> __FORCETOC__ カテゴリ:C_Sharp」) |
(→概要) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
YAML (YAML Ain't Markup Language) は、人間にとって読み書きし易いデータシリアライゼーション形式である。<br> | |||
<br> | |||
C#でYAMLファイルを扱う場合は、一般的には、サードパーティ製ライブラリであるYamlDotNetライブラリ等を使用する。<br> | |||
<br> | |||
YAMLファイルの基本構造は、キーと値のペアで構成されている。<br> | |||
これは階層構造を持つことができ、インデントを使用して表現する。<br> | |||
<syntaxhighlight lang="yaml"> | |||
name: John Doe | |||
age: 30 | |||
address: | |||
street: 123 Main St | |||
city: Anytown | |||
</syntaxhighlight> | |||
<br> | |||
YAMLのメリットとして、JSONやXMLと比べて冗長性が低く、より直感的な記述が可能である。<br> | |||
また、コメントを含められるため、設定ファイルとして使用する場合に説明を加えやすいという特徴がある。<br> | |||
<br> | |||
C#でYAMLファイルを使用する一般的なケースとしては、<br> | |||
アプリケーション設定の管理、データのシリアライゼーション / デシリアライゼーション、構造化されたデータの保存等が挙げられる。<br> | |||
<br> | |||
YAMLの使用する場合は、インデントに注意が必要である。<br> | |||
スペースの数が正確でない場合は、意図しない構造になる可能性がある。<br> | |||
また、複雑なデータ構造を扱う場合は、カスタムクラスを定義してデシリアライズすると、より型安全なコードを記述することができる。<br> | |||
<br> | |||
YAMLは柔軟性が高いため、様々なデータ形式に対応できるが、セキュリティ上の懸念から、信頼できないソースからのYAMLデータを扱う場合は注意が必要である。<br> | |||
<br><br> | |||
== YamlDotNetライブラリ == | |||
==== YAMLファイルの読み込み ==== | |||
以下の例では、YamlDotNetライブラリを使用して、YAMLファイルを読み込んでいる。<br> | |||
<syntaxhighlight lang="c#"> | |||
var deserializer = new DeserializerBuilder().Build(); | |||
var yaml = File.ReadAllText("config.yaml"); | |||
var result = deserializer.Deserialize<Dictionary<string, object>>(yaml); | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
2024年9月18日 (水) 22:57時点における版
概要
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);