使用 SnakeYaml 转储带引号的值

2023-12-05

有一个简单的 yml 文件test.yml如下

color: 'red'

我按如下方式加载和转储文件

        final DumperOptions yamlOptions = new DumperOptions();
        yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);

        Yaml yaml = new Yaml(yamlOptions);


        Object result = yaml.load(new FileInputStream(new File("test.yml")));

        System.out.println(yaml.dump(result));

我期望得到

color: 'red'

但是,在转储期间,序列化程序会忽略引号并打印

color: red

如何使序列化器也打印原始报价?


如何使序列化器也打印原始报价?

不适用于高级 API。引用the spec:

标量样式是表示细节,不得用于传达内容信息,但出于标记解析目的而区分普通标量的情况除外。

高级 API 实现了整个 YAML 加载过程,根据规范的要求,仅向您提供 YAML 文件的内容,而不提供任何有关演示文稿详细信息的信息。

话虽这么说,您可以使用保留演示细节的低级 API:

final Yaml yaml = new Yaml();
final Iterator<Event> events = yaml.parse(new StreamReader(new UnicodeReader(
        new FileInputStream(new File("test.yml"))).iterator();

final DumperOptions yamlOptions = new DumperOptions();
final Emitter emitter = new Emitter(new PrintWriter(System.out), yamlOptions);
while (events.hasNext()) emitter.emit(events.next());

但是,请注意,即使这样也不会保留输入的每个演示细节(例如,不会保留缩进和注释)。 SnakeYaml 不是往返的,因此无法保留确切的输入布局。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SnakeYaml 转储带引号的值 的相关文章

随机推荐

  • 在 Flask 应用程序中返回 Excel 文件

    我正在创建一个 Flask 应用程序 提示用户输入 Excel 文件 对其进行一些处理 然后将文件返回给用户以便他们可以下载它 请忽略任何未使用的导入 我计划稍后使用它们 我的功能已关闭 我只是不确定如何将文件发送回用户以便他们可以下载它
  • JSP 表达式适用于 JSTL 标记,但不适用于 Struts 2 标记

    我在我的项目中使用 JSTL 和 Struts 2 我正在尝试使用 JSTL 和 Struts 2 标记在范围内设置一个值 如下所示 div div div div
  • 警告:mysql_fetch_object():提供的参数不是有效的 MySQL 结果资源

    地狱在那里 当我尝试连接以从数据库中提取内容时 出现以下错误 Warning mysql fetch object supplied argument is not a valid MySQL result resource in home
  • String 与 Stringbuffer 作为 HashMap 键

    我试图理解为什么 String 和 Stringbuilder StringBuffer 在用作 Hashmap 键时会受到不同的对待 让我用下面的插图来澄清我的困惑 示例 1 使用字符串 String s1 new String abc
  • 图库内的图像缩放/平移

    我正在尝试在 Android 图库小部件中缩放 平移图像 图像覆盖整个屏幕 虽然我可以缩放 平移图库中的图像 但我无法滑动到下一个 上一个图像 单个图像的缩放和平移效果很好 我创建了一个 TouchImageView 它扩展了 ImageV
  • 为什么 GWT 不允许我们在文档元素上添加关键事件处理程序?

    我知道有FocusPanel我可以在其上附加此类处理程序 但根据我的经验 该组件的行为不太好 所以我想尽可能避免它 所以我想知道为什么没有办法在文档上附加密钥处理程序 根据怪异模式它可以跨浏览器工作 所以这不应该是一个问题 我也尝试自己编写
  • 用于多对象分类的支持向量机

    我正在尝试使用线性支持向量机进行多类对象类别识别 到目前为止 我了解到主要使用两种方法 一对一 OVA 和一对一 OVO 但我很难理解它的实现 我的意思是我认为使用的步骤是 首先 特征描述符是通过 SIFT 准备的 所以我有一个 128XN
  • 子文档中的 SD MongoDB 多态性

    我刚刚开始使用 spring data mongodb 用 Ja va 开发一些应用程序 并遇到了一些我无法解决的问题 有几个像这样的文档 bean Document collection myBeanBar public class Ba
  • 显示站点根目录外部的图像

    类似的问题在这里被问到 从文档根目录外部提供图像 给出并接受的解决方案是使用 Apache Aliases 但是 文件夹的 Apache 别名是否也会将其公开 我想服务于一个形象并保持它在公众视野中的隐形性 除了别名之外 有谁知道在文档根目
  • Git 从浅克隆中查找自 以来修改的文件

    我在 CI 盒子上运行测试 为了加快速度 我只是做了一个浅克隆 git clone depth 1 email protected JoshCheek some repo git 假设所有测试都通过 我想触发管道中的下一步 触发的内容取决于
  • bigquery 流缓冲区会持续多长时间

    我目前正在将数据从sql server数据库系统迁移到bigquery 并且在尝试从具有活动流缓冲区的bigquery表中删除记录时遇到了问题 您能否确认流缓冲区在被删除之前会持续多长时间那么删除操作可以运行吗 我发现这给开发过程带来了不必
  • 在 C# 中解析阿拉伯日期?

    我在解析日期时遇到了问题 该程序被阿拉伯日期绊倒了 因为某些原因DateTime TryParse 为这种文化输出垃圾 这是说明我的问题的示例代码 var culture CultureInfo CreateSpecificCulture
  • Android 类似 TreeView 的功能

    我正在实施TreeView对于我的应用程序 我在网上搜索了一下 找到了一个ListView执行TreeView这太乱了 是否可以实现n级TreeView using ExpandableListView 请分享您的想法或给我参考一些例子 提
  • Robot Framework - 将 Appium 驱动程序传递给 python 脚本

    我正在使用 Python 将 Robot Framework 与 Appium 集成 但是我不知道如何将 Robot Framework 中创建的 Appium 驱动程序传递给自定义 python 脚本 我的环境 Mac 操作系统 小牛队
  • 通过 firebase 函数发送电子邮件

    有一种方法可以使用像 sendgrid mailgun 这样的API通过Firebase云功能发送电子邮件 或者它被视为出站连接 假设您这么问是因为您使用的是免费 Firebase 计划 正如上所解释的Firebase 定价页面 Spark
  • Bash:变量未正确扩展[重复]

    这个问题在这里已经有答案了 我正在尝试使用变量重命名文件 但是 当我将变量插入到文件名的开头时 事情没有按预期工作 情况如下 我有一个文件名测试 ls test 和一个变量i 1 将变量添加到文件名的末尾或中间时 它可以工作 mv test
  • 将字符串转换为日期,即将完成! [复制]

    这个问题在这里已经有答案了 可能的重复 将符合 ISO8601 的字符串转换为 java util Date 我正在尝试转换这个字符串 2011 06 07T14 08 59 697 07 00 对于 Java Date 到目前为止 我做了
  • CSS 边框样式:波浪

    我在 w3 org 上看到了这个文档 http www w3 org TR 2002 WD css3 border 20021107 borderstyles png显示 border style wave 属性 我急于尝试 在 Firef
  • 可以将一系列键映射到值的数据结构

    我试图找到一种数据结构 该结构从一系列值中获取特定值并将其映射到键 例如 我有以下条件 从1到2 9 我想把它映射到A 从4到6 我想将其映射到B 从6 5到10 我想将其映射到C 我的值为 5 我想将其映射到一个键 所以根据以上条件 我应
  • 使用 SnakeYaml 转储带引号的值

    有一个简单的 yml 文件test yml如下 color red 我按如下方式加载和转储文件 final DumperOptions yamlOptions new DumperOptions yamlOptions setDefault