YAML语言

深入解析 YAML 配置文件:从语法到最佳实践 YAML(YAML Ain't Markup Language)支持多种数据类型,包括字符串、数字、布尔值、列表、字典和空值。 阅读详情

1、简介

  YAML:YAML Ain’t Markup Language,即YAML不是标记语言。不过,在开发的这种语言时,YAML的
意思其实是:“Yet Another Markup Language”(仍是一种标记语言)
  YAML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言,包括:XML、C语言、
Python、Perl以及电子邮件格式RFC2822等。Clark Evans在2001年在首次发表了这种语言

2、YAML 语言特性

YAML的可读性好
YAML和脚本语言的交互性好
YAML使用实现语言的数据类型
YAML有一个一致的信息模型
YAML易于实现
YAML可以基于流来处理
YAML表达能力强,扩展性好

3、YAML语法简介

  • 使用#号注释代码
  • 缩进必须是统一的,不能空格和tab混用
  • 缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的
  • YAML文件内容是区别大小写的,key/value的值均需大小写敏感
  • 多个key/value可同行写也可换行写,同行使用","分隔
  • key后面冒号要加一个空格 比如: key: value
  • value可是个字符串,也可是另一个列表
  • YAML文件扩展名通常为yml或yam

4、支持的数据类型

  1. YAML 支持以下常用几种数据类型:
  2. 标量:单个的、不可再分的值
  3. 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  4. 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

4.1、scalar 标量

语法:key对应value

name: long
age: 18

使用缩进的方式

name:
long
age:
18

标量是最基本的,不可再分的值,包括:

  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

4.2、Dictionary 字典

  字典由多个key与value构成,key和value之间用 :分隔, 并且 : 后面有一个空格,所有k/v可以放在一行,或者每个 k/v 分别放在不同行

语法格式:

account: { name: long, age: 30 }

使用缩进方式

account:
name: wang
age: 18

范例:

#不同行
#An employee record
name: Example Developer
job: Developer
skill: Elite(社会精英)

#同一行,也可以将key:value放置于{}中进行表示,用,分隔多个key:value
#An employee record
{name: “Example Developer”, job: “Developer”, skill: “Elite”}

4.3、List 列表

  列表由多个元素组成,每个元素放在不同行,且元素前均使用"-"打头,并且 - 后有一个空格, 或者将所有元素用 [ ] 括起来放在同一行

格式

course: [ linux , golang , python ]

也可以写成以 - 开头的多行

course:

  • linux
  • golang
  • python

数据里面也可以包含字典
course:

  • linux: manjaro
  • golang: gin
  • python: django

范例:

#不同行,行以-开头,后面有一个空格
#A list of tasty fruits

  • Apple
  • Orange
  • Strawberry
  • Mango
    #同一行
    [Apple,Orange,Strawberry,Mango]

范例:YAML 表示一个家庭

name: John Smith
age: 41
gender: Male
spouse: { name: Jane Smith, age: 37, gender: Female } # 写在一行里
name: Jane Smith #也可以写成多行
age: 37
gender: Female
children: [ {name: Jimmy Smith,age: 17, gender: Male}, {name: Jenny Smith, age:
13, gender: Female}, {name: hao Smith, age: 20, gender: Male } ] #写在一行

  • name: Jimmy Smith #写在多行,更为推荐的写法
    age: 17
    gender: Male
  • {name: Jenny Smith, age: 13, gender: Female}
  • {name: hao Smith, age: 20, gender: Male }

5、配置提示[在SpringBoot项目中,自定义的配置类与配置文件绑定开启提示]

自定义的类和配置文件绑定一般没有提示,在pom文件导入以下依赖,就可以开启提示功能。

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
YAML是什么? YAML的全称最初为“Yet Another Markup Language”(另一种标记语言),后更改为“YAML Ain’t Markup Language”,强调其数据描述属性而非文档标记功能。YAML(YAML Ain’t Markup Language)是一种以数据为中心、高度可读的序列化语言,广泛应用于配置文件、数据交换和自动化工具中。该示例展示了YAML在真实场景中的核心语法和结构化表达能力,结合注释和缩进,使其成为DevOps领域配置管理的首选格式。描述资源的元数据,如名称( 阅读详情

相关推荐

ansible-yaml语言

ansible基础语法

qq_63781342的博客 1862

yaml语言入门(YAML Ain‘t Markup Language)

YAML(YAML Ain't Markup Language 强调不是一种标记语言)是一种人类可读的数据序列化格式。它的设计目标是使数据在不同编程语言之间易于传输和解析。YAML文件通常用于配置文件、数据交换和存储。 YAML最初由Clark Evans于2001年设计,并在2002年发布了第一个版本。它的设计灵感来自于其他数据序列化格式,如XML、JSON和电子邮件的头部。YAML的目标是提供一种简洁、易读、易写的数据格式,同时保持与现有编程语言的集成性。

Dontla的博客 1143

【速通版!语义通信基础与前沿学习计划】

🧠语义通信基础与前沿学习计划

dally2的博客 1413

YAML语言介绍及在kubernetes中的应用

Pods:YAML文件可以用来定义一个或多个紧密协作的容器集合(Pod),包括容器镜像、环境变量、资源请求与限制、端口映射、生命周期钩子等配置项。

专注于数据库技术分享,包含但不限于Oracle,MySQL,PostgreSQL,ElasticSearch及国产数据库等 1063

U8-固定资产月末结账报错:BOF或EOF中有一个是真

度了下,发现此问题一般是由于fa_Vtsobject表缺少对应月份的记录导致,补上即可,但是查看发现此表记录正常。 跟踪后发现定位到以下语句: select * from AccInformation where cSysID = N'FA' and cName =N'bVoucherApply'上述语句执行后没有任何记录显示,但是在正常的账套执行是有记录的,那有可能就是记录丢失导致,执行以下

guizhouakun的博客 5921

强化学习-动态规划

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略。

qq_45481856的博客 2113

什么是 YAML?了解 YAML 语法与最佳实践

YAML 是 "YAML Ain't Markup Language" 的缩写,这是一种用于数据序列化的基于文本的标记语言。YAML 是一种人类可读的数据结构化格式,广泛应用于 Web 应用开发中,如配置文件的编写和 API 文档的创建等。尽管其语法相对简单,但在缩进和注释处理上有独特的规则,需要特别注意。适当使用 YAML 可以提高开发效率和文档质量。

LiamHong_的博客 5388

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7278

c语言解析yaml文件,YAML课程

YAML教程一、简介YAML是一种人们可以轻松阅读的数据序列化格式,并且它非常适合对动态编程语言中使用的数据类型进行编码。YAML是YAML Ain't Markup Language简写,和GNU("GNU's Not Unix!")一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。YAML不是XML。它可以用作数据序列,配置文件,log文件,...

weixin_30813385的博客 2191

用74LS194和555定时器DIY流水灯:一个经典的数字电路课程设计复盘(附Multisim仿真文件)

本文详细介绍了使用74LS194移位寄存器和555定时器搭建八路彩灯控制器的完整过程,包括硬件选型、电路设计、调试技巧及常见问题解决方案。作为经典的数字电路课程设计,该项目涵盖了EDA工具应用、电路原理图设计和Multisim仿真等核心技能,适合电子工程学习者实践参考。

weixin_29185199的博客 428

【OpenCV-Python】——图像处理基础&读写及显示图像&读写及播放视频&灰度图/彩色图/图像通道操作、运算

在Python中,OpenCV使用NumPy数组存储图像,Numpy是使用Python进行数组计算的软件包,提供强大的N维数组对象,支持复杂的广播功能(数组运算),集成了C/C++和Fortran代码工具,支持线性代数、傅里叶变换和随机数等特性,还可作为通用数据的高效多维容器,如在OpenCV中显示图像。Numpy的知识点见数据处理专栏,主要包括数据类型、创建数组、数组形状、索引切片和迭代、数组运算等。作为初学者,里面可能有总结不全,后续深入学习后会改善文章!下次学习图形用户界面!

weixin_51658186的博客 2084

简述YAML语言

YAML是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl等。Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。目前已经有数种编程语言或脚本语言支援这种语言。 YAML是”YAML Ain’t a Markup Language”的递回缩写。 YA

Martian 1180

汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)

A2L文件的生成分为两章讲解:本文主要是讲模型开发,讲解如何把标定量、观测量放到链接文件中的指定位置。下一篇讲解如何使用matlab生成完整的A2L文件

认真搞搞汽车MCU 4619

go 写入yaml_Go语言解析YAML

本篇解析yaml,是为了使用Go搭建一个基于markdown的博客系统,当做一个项目。1 概述YAML是"YAML Ain't a Markup Language"(YAML不是一种置标语言)的递归缩写。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。一个典型的 YAML 如下:title:小韩说课category:gotag:-OOP-GoLang基本语法...

weixin_42103128的博客 1737

【人工智能之深度学习】21. 自动驾驶感知实战:YOLOv4复杂天气优化方案(BDD100K全代码+效果对比)

摘要:自动驾驶摄像头在雨雾天气下易受图像模糊、目标遮挡影响,导致YOLOv4检测精度骤降。本文基于BDD100K公开数据集(含多天气场景),设计三阶段优化方案:1)物理建模生成雨雾效果(雨滴线条+大气散射模型),将恶劣天气样本占比从20%提升至40%;2)在YOLOv4颈部嵌入CBAM注意力机制,强化模糊区域特征提取;3)L1剪枝(30%)+TensorRT量化实现轻量化。需特别说明:本文为教学虚拟案例,不可直接用于车载部署,实际落地需结合多传感器融合与ISO 26262认证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1686

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Linux C语言解析 yaml,YAML用法详解

近期在调试SONIC上基于Ansible的PTF测试平台时,使用到了YANML配置语言,此处稍作解释,汇总一下YAML的语法及基本使用方法。YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。上述介绍引用自维基百科,通俗的讲,YAM...

weixin_33374585的博客 1833

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

yaml语言简介

YAML(IPA:/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。目前已经有数种编程语言或脚本语言支援(或者说解析)这种语言。       YAML是"YAML Ain't a MarkupLanguage"(YAML不是一种置标语言)的递回缩写。在开

雪儿的专栏 1212

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C语言中的YAML解析

引言:YAML(Yet Another Markup Language)是一种人类可读的数据序列化格式,常用于配置文件和数据交换。在C语言中,我们可以使用YAML解析器来解析和处理YAML格式的数据。本文将介绍如何使用C语言中的YAML解析器,以及一些常见的用法和注意事项。

Zorry的专栏 1215

YAML语言教程

文章目录YAML是什么YAML基础语法规则YAML例子说明 YAML是什么 YAML是专门用来写配置文件的语言,非常简介强大,远比JSON格式方便。 YAML基础语法规则 大小写敏感 空格缩进表示层级关系,不允许使用tab缩进 空格数目不重要,相同层级的元素左侧对其即可 #表示注释,而json不允许有注释 支持三种数据结构:对象、数组、纯量(单个的不可再分的值) 数组以一组“-”开头的行 ...

xiaoxu的博客 332

yaml语言格式

  YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言),强调这种语言以数据做为中心,而不是以置标语言为重点。 转载2篇比较好的关于yaml的文章。阮一峰的关于yaml的文章也是很好的。 可以在bejson网站检查YAML的格式,转成json格式等。http://www.bejson.com/va...

weixin_30675967的博客 294

Go语言解析YAML

文章目录1 概述2 安装 `go-yaml/yaml`3 解析 YAML4 构建 YAML 1 概述 YAML是"YAML Ain’t a Markup Language"(YAML不是一种置标语言)的递归缩写。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。一个典型的 YAML 如下: title: 小韩说课 category: go tag: - OOP - ...

红牛编程 4717

yaml语言

YAML编辑 YAML是“另一种标记语言”的外语缩写[1] (见前方参考资料原文内容);但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。 它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。

wuxiaobingandbob的专栏 517

yaml 变量引用_YAML 语言教程

编程免不了要写配置文件,怎么写配置也是一门学问。YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。本文介绍 YAML 的语法,以 JS-YAML 的实现为例。你可以去在线 Demo 验证下面的例子。一、简介YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。它的基本语法规则如下。大小写敏感使用缩进表示层级关系缩进...

weixin_39959335的博客 2492
上一篇: 开发小技巧【开发者工具】
java加油鸭
博客等级 码龄7年 3粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值