Wie bearbeite ich die Einrückung, die beim Serialisieren einer Yaml-Zeichenfolge mit yamldotnet in C# verwendet wird?
Posted: 21 Dec 2024, 12:57
Ich habe es geschafft, einen YAML-String zu generieren. Der Standardeinzug beträgt 2 Zeichen, ich benötige jedoch 4 Zeichen. Da dies für die Anwendung erforderlich ist, die diese Daten verarbeiten wird. Aber es ist mir nicht gelungen, dies zu erreichen.
Hier ist mein Code:
var yamlSerializer = new SerializerBuilder()
.Build();
string yaml;
using (var writer = new StringWriter())
{
var _settings = new EmitterSettings();
Console.WriteLine(_settings.BestIndent);
_settings.WithBestIndent(4);
var _emitter = new Emitter(writer, _settings);
yamlSerializer.Serialize(_emitter, dictionary);
yaml = writer.ToString();
}
Console.WriteLine(yaml);
Hier die Ausgabe:
cars:
bmw:
model: 1 series
catagory: coupe
year: 2008
nissan:
model: 300zx
catagory: hatchback
year: 1996
toyota:
model: 4runner
catagory: suv
year: 2015
audi:
model: a8
catagory: sedan
year: 2017
Und es sollte so sein:
cars:
bmw:
model: 1 series
catagory: coupe
year: 2008
nissan:
model: 300zx
catagory: hatchback
year: 1996
toyota:
model: 4runner
catagory: suv
year: 2015
audi:
model: a8
catagory: sedan
year: 2017
Hier ist mein Code:
var yamlSerializer = new SerializerBuilder()
.Build();
string yaml;
using (var writer = new StringWriter())
{
var _settings = new EmitterSettings();
Console.WriteLine(_settings.BestIndent);
_settings.WithBestIndent(4);
var _emitter = new Emitter(writer, _settings);
yamlSerializer.Serialize(_emitter, dictionary);
yaml = writer.ToString();
}
Console.WriteLine(yaml);
Hier die Ausgabe:
cars:
bmw:
model: 1 series
catagory: coupe
year: 2008
nissan:
model: 300zx
catagory: hatchback
year: 1996
toyota:
model: 4runner
catagory: suv
year: 2015
audi:
model: a8
catagory: sedan
year: 2017
Und es sollte so sein:
cars:
bmw:
model: 1 series
catagory: coupe
year: 2008
nissan:
model: 300zx
catagory: hatchback
year: 1996
toyota:
model: 4runner
catagory: suv
year: 2015
audi:
model: a8
catagory: sedan
year: 2017