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!
c# yaml yamldotnet nuget visual studio yamlstream
Commentami!