With YamlDotNet I'm getting inconsistent serialization. I'm serializing with a basic serializer:
new YamlDotNet.Serialization.SerializerBuilder()
.DisableAliases()
.ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitDefaults)
.Build()
.Serialize(target)
When I serialize a simple anonymous object it works more or less correctly, expanding multi-line strings with the YAML Multiline Guide. It has double line feeds, which seems like a bug similar to that reported in this question, but is otherwise correct.
So if I serialize:
new {
A = 1,
B = "Testing",
Group1 = new {
Field1 = "Test 1\r\n\"This\"",
Field2 = "Test 2\r\n'That'"
}
}.ToYaml()
I get just about what I expect (other than the double newlines):
A: 1 B: Testing Group1: Field1: >- Test 1 "This" Field2: >- Test 2 'That'
So far so good. When I try to serialize a real object that looks like this in JSON:
{ "Parameters": { "CommitmentSpecIds": { "Choices": { "1060": "Location" } }, "DisplayValue": { "Text": "LOC: {{Question.Schedule->LocationName}}" }, "Tooltip": { "Text": "Staff: {{Question.Schedule->StaffName}}\nAppointment: {{Question.Schedule->ScheduleDate@d}}" } } }
I end up with the lines being double-quoted if they have any newlines, just as they do in JSON.
Parameters: CommitmentSpecIds: Choices: 1060: Location DisplayValue: Text: 'LOC: {{Question.Schedule->LocationName}}' Tooltip: Text: "Staff: {{Question.Schedule->StaffName}}\nAppointment: {{Question.Schedule->ScheduleDate@d}}"
I've searched a couple hours, but assume I'm missing something simple.
How do I force Folded Block Scalar Style
for all strings with newlines.