はじめに
今回はYamlDotNetを利用して.yaml
から.json
への変換をC#でやる方法を紹介したいと思います。
概要
YamlDotNet
を用いれば複数のライブラリを活用したりせずに簡単に変換ができます。ちなみにYamlDotNet
自体はかなり有名なライブラリです。
github.com
やり方
YamlDotNetをインポートする
NuGetからインポートしましょう。
$ dotnet add package YamlDotNet --version 16.3.0
コードを記述する
バージョンによって書き方に違いがあるのでご注意ください。以下はv16.3.0
の現時点(2025/3)で最新のものになります。
using YamlDotNet.Serialization; const string yaml = """ name: John Doe age: 30 address: street: 123 Main St city: Anytown state: CA postalCode: 12345 phoneNumbers: - type: home number: 555-1234 - type: work number: 555-5678 """; var deserializer = new Deserializer(); var yamlObject = deserializer.Deserialize(yaml); var serializer = new SerializerBuilder() .JsonCompatible() .Build(); var textWriter = new StringWriter(); serializer.Serialize(textWriter, yamlObject); // {"name": "John Doe", "age": "30", "address": {"street": "123 Main St", "city": "Anytown", "state": "CA", "postalCode": "12345"}, "phoneNumbers": [{"type": "home", "number": "555-1234"}, {"type": "work", "number": "555-5678"}]} Console.WriteLine(textWriter.ToString());