Leggere file YAML in C# con YamlDotNet

Mattepuffo's logo
Leggere file YAML in C# con YamlDotNet

Leggere file YAML in C# con YamlDotNet

Giusto per test, ho voluto provare a fare il parsing di YAML anche in C#.

Da quanto ho capito la libreria più usata è YamlDotNet, installabile tramite NuGet.

Quindi potete installarla direttamente da Visual Studio (come ho fatto io), oppure:

PM> Install-Package YamlDotNet

Fatto questo, vediamo un esempio basico:

using System;
using System.IO;
using YamlDotNet.RepresentationModel;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = new StringReader(ListaUtenti);
            var yaml = new YamlStream();
            yaml.Load(input);
            var mapping = (YamlMappingNode)yaml.Documents[0].RootNode;

            foreach (var entry in mapping.Children)
            {
                Console.WriteLine(((YamlScalarNode)entry.Key).Value);
            }

            var items = (YamlSequenceNode)mapping.Children[new YamlScalarNode("utenti")];
            foreach (YamlMappingNode item in items)
            {
                Console.WriteLine(
                    "{0}t{1}",
                    item.Children[new YamlScalarNode("nome")],
                    item.Children[new YamlScalarNode("lavoro")]
                );
            }
        }

        private const string ListaUtenti = @"---
            utenti:
                - nome: Mattepuffo
                  lavoro: Developer
                  web_site: https://www.mattepuffo.com

                - nome: Marzia
                  lavoro: Fotografa
                  web_site: https://www.marziaferrone.com
...";
    }
}

La stringa YAML l'abbiamo messa direttamente nel codice per velocità; ma potreste prenderla dal web a da un file.

Come vedete la libreria si occupa di fare praticamente tutto il lavoro sporco.

Enjoy!


Condividi

Commentami!