首页 > 其他分享 >Yaml语法

Yaml语法

时间:2023-08-06 17:05:44浏览次数:36  
标签:lisi name YAML age private 语法 Yaml zhangsan

世事变幻无常,而近乎永恒不变者,唯你我头上的同一片星空。 Where there is no desire, there will be no industry. 哪里没有欲望,哪里就不会有勤奋。

一、YML是什么

YAML (YAML Aint Markup Language)是一种标记语言,通常以.yml或者.yaml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。

抽象:

YAML ™(带有“camel”的押韵)是一种人类友好的、跨语言的、基于Unicode的数据序列化语言,围绕敏捷编程语言的常见原生数据类型设计。对于从配置文件到Internet消息传递到对象持久性到数据审计的编程需求,它非常有用。该规范Unicode字符标准一起,提供了理解YAML Version 1.2以及创建处理YAML信息的程序所需的所有信息。

二、YML的优点

  1. YAML易于人们阅读。
  2. YAML数据在编程语言之间是可移植的。
  3. YAML匹配敏捷语言的本机数据结构。
  4. YAML具有一致的模型来支持通用工具。
  5. YAML支持单程处理。
  6. YAML具有表现力和可扩展性。
  7. YAML易于实现和使用。

三、YML语法

1. 语法

它的基本语法规则如下。

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

YAML 支持的数据结构有三种。

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

以下分别介绍这三种数据结构。

2.键值关系

(以Java语言为例,其它语言类似)对于键与值主要是看能否表示以下内容。普通的值(数字、字符串、布尔)、日期、对象、数组、集合等。

1) 普通值(字面量)

k: v:字面量直接写;

字符串默认不用加上单引号或者双绰号;

“”: 双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi

:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name1: zhangsan
name2: 'zhangsan \n lisi'
name3: "zhangsan \n lisi"
age: 18
flag: true

2)日期

date: 2019/01/01

3)对象(属性和值)、Map(键值对)

在下一行来写对象的属性和值的关系,注意缩进

people:
    name: zhangsan
    age: 20

行内写法:

people: {name:zhangsan,age: 20}

4)数组、list、set

- 开头表示数组中的一个元素

pets:
    - dog
    - pig
    - cat

行内写法

pets: [dog,pig,cat]

5)数组对象、list对象、set对象

peoples:
    - name: zhangsan
      age: 22
    - name: lisi
      age: 20
    - {name: wangwu,age: 18}

6)Java代码示例

Java代码(省略get,set方法)

public class Person {

    private String lastName;
    private Integer age;
    private Boolean boss;

    private Date birth;
    private Map<String,Object> maps;
    private List<Dog> lists;
    private Dog dog;
    private String[] arr;
}
public class Dog {
    private String name;
    private Integer age;
}

对应的yml

person:
  boss: false
  maps:
    k1: v1
    k2: 14
  lists:
    - name: d1
      age: 2
    - name: d2
      age: 3
    - {name: d3,age: 4}
  birth: 2017/12/15
  dog:
    name: p_dog
    age: 15
  age: 13
  last-name: 张三
  arr: [s1,s2,s3]

3.文档块

对于测试环境,预生产环境,生产环境可以使用不同的配置,如果只想写到一个文件中,yml与是支持的,每个块用—-隔开

server:
  port: 8081
spring:
  profiles:
    active: prod #激活对应的文档块

---
server:
  port: 8083
spring:
  profiles: dev #指定属于哪个环境

---

server:
  port: 8084
spring:
  profiles: prod  #指定属于哪个环境

参考:

https://yaml.org/

标签:lisi,name,YAML,age,private,语法,Yaml,zhangsan
From: https://blog.51cto.com/u_11906056/6985092

相关文章

  • Go 语法
    一个Go文件包含以下几个部分:包声明导入包函数语句和表达式看下面的代码,更好地理解它:例子packagemainimport"fmt"funcmain(){fmt.Println("HelloWorld!")}例子解释第1行:在Go中,每个程序都是一个包的一部分。我们使用package关键字来定义它。在这个......
  • Go 语法
    一个Go文件包含以下几个部分:包声明导入包函数语句和表达式看下面的代码,更好地理解它:例子packagemainimport"fmt"funcmain(){fmt.Println("HelloWorld!")}例子解释第1行:在Go中,每个程序都是一个包的一部分。我们使用package关键字来定义它。在这个例......
  • YAML入门
    YAML速记在HydroOJ的时候,配置客观题遇到了此类文件格式。产生兴趣,简单学一下。学习参考视频:BV1yL4y1T7Pr什么是YAMLYAMLAin'tMarkupLanguage。YAML不是一种标记语言。是一种可读性高,用以表达数据序列化的格式文件后缀通常为 .yaml或.ymlYAML的语法规则使用缩进表......
  • 【python_6】基础语法:标识符和运算符!
    1.什么是标识符在python程序中,我们可以给很多东西起名字,比如:变量的名字方法的名字类的名字等等这些名字,我们把它统一的称之为标识符,用来做内容的标识。所以,标识符:是用户在编程的时候所使用的一系列名字,用于给变量,类,方法等命名。2.标识符的命名规则标识符命名的规则主要有三类内容限......
  • 【python_5】基础语法:数据类型以及数据类型转变!
    1.使用type()语句查看数据类型目前在入门阶段,我们主要接触如下三类数据类型:类型描述说明string字符串类型用引号引起来的数据都是字符串int整型(有符号)数字类型,存放整数如-1,10,0等float浮点型(有符号)数字类型,存放小数如-3.14,6.78等我们可以通过type()语句来得到数据的类型:type(被查......
  • Vue学习笔记:setup语法糖
    在使用VCA方式编写Vue代码是,大部分逻辑都是被setup(){}包裹起来,且最后使用的时候需要return{}出去。比较繁琐,实际上Vue提供了setup语法糖,可以简化这些操作。1不再需要exportdefault与return不使用语法糖写法<template><div@click="handelClick">app-{{msg}}</div></te......
  • dart的语法
    dart的语法main方法main(){print("有返回值");}voidmain(){print("没有返回值");}字符串的定义的方式//字符串定义的几种方式varstr1="thisisstr1";varstr2="thisisstr2";//2.字符串的拼接2种varstr3=str1+str2;print("$str1......
  • PyYAML的使用
    YAML是一个被广泛使用的数据序列化和配置语言,作为一个开发者,总是不免和它打交道。但处理YAML文档,尤其是使用PyYAML的过程总是非常痛苦。这篇文章分享我在Python下使用PyYAML的技巧和代码片段,并介绍几个相关的库。注意:本文中的代码仅保证在Python3下正常工作总是使用 s......
  • Go 语言入门指南: 环境搭建、基础语法和常用特性解析 | 青训营
    Go语言入门指南:环境搭建、基础语法和常用特性解析|青训营从零开始Go语言简介Go是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由RobertGriesemer,RobPike,KenThompson主持开发,后来还加入了IanLanceTaylor,RussCox等人,并最终......
  • 【python_4】基础语法:字面量和注释!
    1.字面量的含义字面量:在代码中,被写下来的固定的值,称之为字面量。2.常见的字面量类型类型描述说明数字Number支持:整数int浮点数float复数complex布尔bool整数int,如10,-10浮点数float,如13.14,-13.14复数complex,如4+3j布尔bool,表达现实生活中的逻辑,即真和假,True表示真,False表示假。True......