java - 使用 SnakeYAML 将包含一些代码的文本转储到 yaml 文档
问题描述
我正在尝试使用 SnakeYAML 将包含一些代码的文本以及 TAB (\t) 转储到 yaml 文件中。
当我 yaml.load() 这个 yaml 文件时,一切都按预期发生。
文件.yaml
local: |
begin
if P_MESSAGE = 'DEFAULT' then
P_FILE.[SRC_TYPE] := true;
end;
测试.js
Yaml yaml = new Yaml(options);
Map<String, Object> test = yaml.load(new FileInputStream(new File("file.yaml"));
System.out.println(test);
输出:
{local=begin
if P_MESSAGE = 'DEFAULT' then
P_FILE.[SRC_TYPE] := true;
end;}
但是当我尝试将此字符串转储回文件时
测试.js
...
Map<String, Object> test = yaml.load(new FileInputStream(new File("file.yaml"));
String out = yaml.dump(test);
System.out.println(out);
我有这个:
输出
"local": "begin\n if P_MESSAGE = 'DEFAULT' then\n\t\tP_FILE.[SRC_TYPE] := true;\n\
end;
我想用原始格式标量取回它,就像在第一个块中一样。例如,我希望 \t 成为真正的标签。有人有提示吗?
设置:
options.setDefaultFlowStyle(DumperOptions.FlowStyle.AUTO);
options.setDefaultScalarStyle(DumperOptions.ScalarStyle.LITERAL);
解决方案
推荐阅读
- jquery - 包含带有 CDN(完整性和跨域)错误的 JQuery 和 Bootstrap?
- jenkins - 如何在 Jenkins 脚本控制台中包含共享库?
- java - 应用程序终止后启动闪屏
- delphi - Delphi Convert 返回无效类型
- sql - oracle中如何将作业状态从Scheduled更改为Running状态
- javascript - Fabric.js getObjects() 按标签或类型
- linux - 可能未定义的宏:AC_PROG_LIBTOOL
- python - ESA 的 snap-python (snappy) 不适用于 python 3.5 及更高版本
- javascript - 如何将p5js动画作为网站的背景?
- javascript - 单击时更改回调函数变量