SnakeYaml 嵌套Map写入格式

使用SnakeYaml 写入yaml时,默认格式为流式,可以通过DumperOptions修改为层级表示。

默认格式

导入包

import org.yaml.snakeyaml.Yaml;
import java.util.*;

设置一个用于测试的dataMap

Map<String, Object> dataMap = new LinkedHashMap<String, Object>();
dataMap.put("data", "data");
Map<String, Object> subMap = new LinkedHashMap<String, Object>();
subMap.put("name", "sub_map");
subMap.put("data", "data");
dataMap.put("sub_map", subMap);
List<String> subList = new ArrayList<String>();
subList.add("data");
subList.add("data");
subList.add("data");
dataMap.put("sub_list", subList);

写入yaml

try{Yaml yaml = new Yaml();// 保存yaml的位置String fileDir = "D:/test.yaml";FileWriter file_write = new FileWriter(fileDir);yaml.dump(dataMap, file_write);
}catch (Exception e) {e.printStackTrace();
}

先看一下json格式的dataMap

{"data": "data","sub_map": {"name": "sub_map","data": "data"},"sub_list": ["data","data","data"]
}

写入的yaml文件

data: data
sub_map: {name: sub_map, data: data}
sub_list: [data, data, data]

这边的yaml是流式的,不够美观。

设置区块表示

导入包

import org.yaml.snakeyaml.*;
import org.yaml.snakeyaml.DumperOptions.*;

写入yaml

try{// 设置dumperOptionsDumperOptions dumperOptions = new DumperOptions();// 修改为层级表示dumperOptions.setDefaultFlowStyle(FlowStyle.BLOCK);Yaml yaml = new Yaml(dumperOptions);String fileDir = "D:/test.yaml";FileWriter file_write = new FileWriter(fileDir);yaml.dump(dataMap, file_write);
}catch (Exception e) {e.printStackTrace();
}

设置格式后

data: data
sub_map:name: sub_mapdata: data
sub_list:
- data
- data
- data

其他DumperOptions设置

格式化

dumperOptions.setPrettyFlow(true);
data: data
sub_map: {name: sub_map,data: data
}
sub_list: [data,data,data]

开始与结束分隔符

dumperOptions.setExplicitStart(true);
dumperOptions.setExplicitEnd(true);
---
data: data
sub_map: {name: sub_map, data: data}
sub_list: [data, data, data]
...

显示类型

dumperOptions.setCanonical(true);
---
!!map {? !!str "data": !!str "data",? !!str "sub_map": !!map {? !!str "name": !!str "sub_map",? !!str "data": !!str "data",},? !!str "sub_list": !!seq [!!str "data",!!str "data",!!str "data",],
}

ScalarStyle

dumperOptions.setDefaultScalarStyle(ScalarStyle.LITERAL);
/*
"key": |-value
*/
dumperOptions.setDefaultScalarStyle(ScalarStyle.FOLDED);
/*
"key": >-value
*/
dumperOptions.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
/*
"key": "value"
*/
dumperOptions.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED);
/*
'key': 'value'
*/
dumperOptions.setDefaultScalarStyle(ScalarStyle.PLAIN);
/*
key: value
*/

缩进

dumperOptions.setIndent(2);

SnakeYaml 嵌套Map写入格式 DumperOptions格式设置相关推荐

  1. python 写入excel数字格式,怎么在Python中写入Excel的格式

    怎么在Python中写入Excel的格式 发布时间:2021-03-12 17:02:25 来源:亿速云 阅读:77 作者:Leah 这期内容当中小编将会给大家带来有关怎么在Python中写入Exce ...

  2. Json的list、map、对象对应格式

    目录 list对应json格式 map对应的json格式 对象对应的json格式 list对应json格式 对应代码:List<String> list = new ArrayList&l ...

  3. aswing学习笔记3-在JPanel中,如何将.png格式的图片设置为背景?

    在JPanel中,如何将.png格式的图片设置为背景? 2009-03-04 19:21 在JPanel中,如何将.png格式的图片设置为背景? 发表于 : 周三 6月 04, 2008 3:53 p ...

  4. jsonArray:JavaBean,List,Map转成json格式(轉+整理)

    JSON与JAVA数据的转换 JavaBean,List,Map转成json格式 JS解析json数据(如何将json字符串转化为数组) 需要四個包: commons-beanutils-1.8.3. ...

  5. echarts map地图geojson/json格式的简单使用

    ** echarts地图简单使用方法 (geojson格式/json格式) ** 首先贴两个非常有用的地图网站 地图下载网站:http://datav.aliyun.com/tools/atlas/# ...

  6. Solidworks输出1:1图纸DWG格式文件参数设置

    Solidworks输出1:1图纸DWG格式文件参数设置 在工程图中,工程图视图采用图纸比例模式下,输出1:1 点击菜单上的文件-另存为 选择dwg或者dxf格式 3.输出时比例激活设置选项 在左侧 ...

  7. Python自动化办公笔记(04)xlwriter写入和openpyxl格式套用

    四.xlwriter写入和openpyxl格式套用 安装第三方库: pip install xlsxwriter pip install openpyxl xlsxwriter:即xlsx write ...

  8. cad转换成pdf格式之后如何设置其背景色为白色?

    cad转换成pdf格式之后如何设置其背景色为白色?将cad图纸文件进行格式间的转换成为pdf的格式是CAD工作者们或者是设计师们经常会需要操作的事情,但是可能是不止将cad图纸文件进行转换成pdf格式 ...

  9. CAD转换成的PNG格式背景如何设置成白色?

    CAD转换成的PNG格式背景如何设置成白色?PNG格式是图片中的格式之一,一般也会需要将CAD图纸文件进行转换成这种格式,需要借助到的是CAD版本转换器软件,具体应该怎么样进行操作,使用CAD版本转换 ...

  10. android名称框怎么取消,word文档格式在哪设置,word格式怎么设置

    您可以在您的 Android 平板电脑. iPad 或 Windows 平板电脑上使用 Word,以选择和设置文本格式. 更改行距和段落间距. 更改缩进量,和添加列表.您还可以使用剪切. 复制. 粘贴 ...

最新文章

  1. JScript Array对象的几个原型方法
  2. 【软考之路】关于上周参加的软考的几点感想
  3. 2019牛客暑期多校训练营(第五场)
  4. dot-- 资源汇总
  5. 纳尼???我JVM优化过头了,直接把异常信息优化没了?怎么办
  6. MySQL MVCC 概述
  7. 帧中继更具体配置信息
  8. BLE4.0教程四 新增特征值(CC2541)
  9. python tree 库_Python——tree
  10. 视频教程-汇编语言程序设计VII-其他
  11. Facebook前身 哈佛大学“选美“网站核心算法 -- ELO等级分制度(附源码)
  12. 2014腾讯实习生招聘数组墙算法
  13. 投资中最简单的事--阅读笔记
  14. python上下对齐_python-docx设置表格对齐方式
  15. 安全研究 # Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
  16. 根轨迹起始角与终止角的确定
  17. win10去掉快捷方式小箭头(win10桌面快捷方式小箭头怎么去掉)
  18. 资深前端老司机到底牛逼在哪?
  19. VRay Next for SketchUp 泳池水材质制作教程
  20. 【Vue3从零开始-实战】S14:详情页回退事件及路由参数的传递获取数据

热门文章

  1. (2)公众号开发-基础框架搭建
  2. 英飞凌TC297 PSPR与DSPR
  3. 常用的Shell脚本集合
  4. 如何通过excel表格批量生成word文档?
  5. 20套数据可视化大屏模板,附源码下载
  6. 肯德基营销策略案例分析PPT模板
  7. vmware虚拟机共享文件夹设置(xp)
  8. LNK2005符号重定义问题
  9. java中常量池存的是什么_Java中常量池是什么?Java常量池的介绍
  10. 软件工程毕设(五)·外文翻译