serialization - 如何强制 YamlDotNet 对所有多行字符串使用折叠块标量
问题描述
使用 YamlDotNet 我得到不一致的序列化。我正在使用基本序列化程序进行序列化:
new YamlDotNet.Serialization.SerializerBuilder()
.DisableAliases()
.ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitDefaults)
.Build()
.Serialize(target)
当我序列化一个简单的匿名对象时,它或多或少地工作正常,使用YAML Multiline Guide扩展多行字符串。它有双换行,这似乎是一个类似于这个问题中报告的错误,但在其他方面是正确的。
所以如果我序列化:
new {
A = 1,
B = "Testing",
Group1 = new {
Field1 = "Test 1\r\n\"This\"",
Field2 = "Test 2\r\n'That'"
}
}.ToYaml()
我得到了我所期望的(除了双换行符):
答:1 B:测试 第一组: 字段1:>- 测试 1 “这个” 字段2:>- 测试 2 '那'
到目前为止,一切都很好。当我尝试在 JSON 中序列化一个看起来像这样的真实对象时:
{ “参数”: { “CommitmentSpecIds”:{ “选择”:{ “1060”:“位置” } }, “显示值”:{ “文本”:“地点:{{Question.Schedule->LocationName}}” }, “工具提示”:{ "Text": "工作人员:{{Question.Schedule->StaffName}}\n约会:{{Question.Schedule->ScheduleDate@d}}" } } }
如果它们有任何换行符,我最终会用双引号括起来,就像在 JSON 中一样。
参数: CommitmentSpecIds: 选择: 1060:位置 显示值: 文本:'LOC:{{Question.Schedule->LocationName}}' 工具提示: 文本:“工作人员:{{Question.Schedule->StaffName}}\n约会:{{Question.Schedule->ScheduleDate@d}}”
我已经搜索了几个小时,但假设我错过了一些简单的东西。
如何Folded Block Scalar Style
使用换行符强制所有字符串。
解决方案
推荐阅读
- reactjs - 在不透明的情况下反应本机列表
- openlayers-3 - 带有参数 Array 的 vectorSource.addFeatures 包含使用 openlayers 4.3.3 的 10 多个特征
- vue.js - 使用 Axios 对 DRF 进行 POST
- php - iOS推送通知问题它工作了一段时间,有时不工作
- database - 如何使用 MongoDB 存储和搜索大型文档?
- javascript - 合并相关时间序列数据
- python - 错误消息 - 元素不可交互 Selenium webdriver
- android - Android:错误:使用未声明的标识符“fseeko”
- python - 如何用像素检测每30个单元格的坐标?(不使用opencv,最好不使用任何库)
- ios - 为什么在滑动单元格时会在表格视图的单元格中打乱我的视图?