atitit.手动配置列表文件的选择and 数据的层次结构 attilax总结最佳实践--yaml
atitit.手动配置列表文件的选择and 数据的层次结构 attilax总结最佳实践--yaml
2. 数据的层次结构--结构:hash,list,和block literal。
1
4.2. JSON也适合与任何数据,复杂struts难以阅读 2
5. 基于YAML的开源项目解析YAML文件最常用的Java库是JvYAML 3
1. yaml是个好的选择..
一个list,使用json手动维护麻烦的,双引号也多兰..
2. 数据的层次结构--结构:hash,list,和block literal。
3. yaml跟json的实现区别
hash(散列)
通过缩进子段和在关键字与值之间使用冒号(:)来分割实现hash的创建,使用自然的回车做多fld的分割
还有一种方法就是使用与JSON兼容的大括号语法({})语法,每一对关键字/值使用逗号(,)分割,如
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
list(清单)
通过在每个list元素前放一个减号(-)来创建list,与空格缩进一起构成了YAML的基石:
|
components: |
还有一种方法就是使用JSON兼容的方括号([])语法,如:
block literal(文字块)
这是YAML的亮点,特别是与XML相比,它的CDATA显得相当简陋,block literal可以将大块文本细致地插入文件中,你可以使用竖线(|)指令在你的文本中保留新行,如:
|
text: | |
4. xml的优点及json的问题
4.1. ide友好
YAML没有提供方案或DTD概念,因此无法验证文件格式是否符合你的预期,XML的啰嗦也有它的价值,但总的说来是因为XML的成熟使它具有大量额外的工具来验证它的格式,而YAML还没有。
4.2. JSON也适合与任何数据,复杂struts难以阅读
它主要面向提高性能和文件尺寸的大小,因为它几乎不使用空格和关闭标签,然而,JSON文件的内容增加了复杂性,它的关 闭标识就象下地狱一样,这就是JavaFx代码(它基于JSON)中可见的最痛苦的了,在数据文件中,使用UI结构使结果更复杂,其复杂程度几乎使文件变 得无法理解。
4.3. json难以手工维护
掺和了{}结构和[]清单,使得手工维护大型的JSON风格的文件变得相当困难,YAML使用它的空格缩进方法巧妙地解决了这个问题,当
5. 基于YAML的开源项目解析YAML文件最常用的Java库是JvYAML
请原谅我在这里厚脸皮地介绍我们自己的开源项目,当我真的不知道除了JRuby外其他的基于YAML的开源项目,JRuby的Ruby on Rails框架实现严重依赖YAML,而不是XML或JSON,看看我的Java Builder库吧(http://www.javabuilders.org/),它利用YAML文件提供了一种方法定义屏幕控制、布局、事件线路和数据绑定,以实现将说明UI装入Java。
6. yaml的ide支持
对Eclipse而言,有Eclipse YAML editor(http://code.google.com/p/yamleditor/),对NetBeans而言,你可以使用来自Ruby包(http://www.netbeans.org/features/ruby/index.html)的YAML编辑器,然而,在NetBeans 6.1中的YAML编辑器并没有什么用处,它只支持YAML很小的一个子集(例如:它不支持block literal)
7. 参考
超越XML和JSON:YAML - 在水一方 - 博客频道 - CSDN.NET.htm
atitit.手动配置列表文件的选择and 数据的层次结构 attilax总结最佳实践--yaml的更多相关文章
- paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi copy() =====java的无,要自己写... ====php copy ...
- 百亿级小文件存储,JuiceFS 在自动驾驶行业的最佳实践
自动驾驶是最近几年的热门领域,专注于自动驾驶技术的创业公司.新造车企业.传统车厂都在这个领域投入了大量的资源,推动着 L4.L5 级别自动驾驶体验能尽早进入我们的日常生活. 自动驾驶技术实现的核心环节 ...
- 如何通过倾斜摄影数据手动配置s3c索引文件?
如何通过倾斜摄影数据手动配置s3c索引文件? 大家知道,倾斜摄影数据最常见的是OSGB格式,并且是由一个一个的Tile分级文件夹构成的Data文件夹.结构一般如下图所示: 那么,如何才能把模型的各个瓦 ...
- Smart3D系列教程7之 《手动配置S3C索引加载全部的瓦片数据》
一.前言 迄今为止,Wish3D已经出品推出了6篇系列教程,从倾斜摄影的原理方法.采集照片的技巧.Smart3D各模块的功能应用.小物件的照片重建.大区域的地形重建到DSM及正射影像的处理生产,立足于 ...
- iOS开发备忘录:属性列表文件数据持久化
属性列表文件是一种XML文件,Foundation框架中的数组和字典等都可以于属性列表文件相互转换. NSArray类常用读写属性列表文件的方法: +arrayWithContentsOfFile:类 ...
- Atitit..文件上传组件选择and最佳实践的总结(2)----HTTP
Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 怎样推断一个插件/控件是否支持断点续传?? 1 3. 经常使用的组件选型结果::马 1 4. ...
- atitit.提取zip rar文件列表 java php c# 的原理与设计
atitit.java提取zip rar文件列表 1. 取zip rar文件的场景问题 1 1.1. 多重压缩的问题 1 1.2. 文件名编码的问题 1 1.3. 目录的判定 1 2. rar的解析 ...
- Hibernate入门3.配置映射文件深入
Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...
- Atitit phpstorm配置attilax总结
Atitit phpstorm配置attilax总结 1. 前期准备 1 1.1. 配置interpreter 1 1.2. debug需要xdebug的支持,不管是script模式还是web模式 3 ...
随机推荐
- 怎样加入cocostudio生成的UI到项目
cocos2dx版本号:cocos2d-x-3.2alpha0 cocostudio版本号:V1.4.0.1 1.将cocostudio生成的UI文件复制到项目Resources目录 2.加入头文件, ...
- 重新总结flex布局(flex,flex-direction,justify-content,align-items,flex-wrap,align-self)
1.flex,主要就是按比例分配.(例如:两个div的flex:1,就大小相等) .box1{ flex:1; background-color: red; } .box2{ flex:1; back ...
- Computer Generated Angular Fisheye Projections [转]
Computer GeneratedAngular Fisheye Projections Written by Paul Bourke May 2001 There are two main ide ...
- TensorFlow进阶(六)---模型保存与恢复、自定义命令行参数
模型保存与恢复.自定义命令行参数. 在我们训练或者测试过程中,总会遇到需要保存训练完成的模型,然后从中恢复继续我们的测试或者其它使用.模型的保存和恢复也是通过tf.train.Saver类去实现,它主 ...
- linux CentOS7 修改系统时间
linux在安装的时候如果时区选择错误,可以在系统安装完成之后修改.系统时间运行着也会有偏差,需要对时间进行实时同步,方法如下: 打开terminal 首先转到root权限 :并输入密码 然后输入:t ...
- 获取jQuery版本号
今天在一个页面需要知道jquery版本号,来决定使用什么样的方法,有以下方式可以获取到 $.fn.jquery $.prototype.jquery 这两种方式都可以获取到jquery的版本号
- 解决Windows server 2012 R2 系统使用IIS8浏览Asp程序出现"An error occurred on the server when processing the URL"错误
进入IIS并将ASP里的“Send Error To Browser”设置为True后点击Appley保存即可 原因是IIS里的Asp设置禁用上当错误信息发送给浏览器,只要启用即可 如果没有Asp选项 ...
- [转载]手工安全测试方法&修改建议
转载自: Web安全测试(一)-手工安全测试方法&修改建议 1.XSS(Cross-Site Script)跨站脚本攻击 XSS(Cross-Site Script):跨站脚本攻击. 它指的是 ...
- 设计模式之Programming to an Interface, not anImplementation 程序指向接口,而不是实现
Class inheritance is basically just a mechanism for extending an application's functionality by reus ...
- 从零开始编写自己的C#框架(25)——网站部署 【转】
服务器安全部署文档 目录1. 前言.. 3 2. 部署环境.. 3 2.1 服务器环境信息.. 3 3. 磁盘阵列配置.. 4 4. 安装操作系统.. ...