尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

YAML 知识小课堂

YAML 知识小课堂
📅 发布时间:2026/7/7 1:59:56

YAML(YAML Ain’t a Markup Language)是一种人类可读的数据序列化语言,由 Clark Evans、Ingy döt Net 和 Oren Ben-Kiki 于 2001 年提出。

它以缩进表示结构,广泛用于配置文件与数据交换场景。

💡 核心特点:YAML 是 JSON 的超集
所有合法 JSON 都是合法 YAML,但 YAML 更简洁易读。


✨ 核心特点

特性说明
可读性强接近自然语言,结构清晰
支持注释使用#添加说明
跨语言主流编程语言均支持解析
JSON 兼容可直接包含 JSON 风格数据
简洁表达依赖缩进而非括号结构

###🛠️ 基本语法

name:张三age:25isStudent:falsehobbies:-编程-阅读-音乐address:city:北京zip:"100000"

📊 数据类型说明

类型示例说明
字符串hello/"hello world"一般无需引号,特殊情况需加
整数42自动识别
浮点数3.14自动识别
布尔值true / false也支持 yes/no、on/off
空值null或~等价
数组- item或[1,2,3]支持块级与行内
对象key: value缩进表示层级
日期2024-07-06ISO 8601
时间2024-07-06T12:00:00+08:00带时区

❌ 常见错误(速记版)

错误写法正确写法速记原因
name:"Tom"name: "Tom"冒号后面必须带空格
Tab 缩进空格缩进YAML 不认 Tab,只用空格
field: undefinedfield: null/field: ~YAML 没有 undefined,空值只用null/~
code: 08080code: "08080"0开头数字易变八进制,加引号锁死字符串
switch: yesswitch: "yes"yes/no会被转布尔,文字要加引号
2空格、4空格混用缩进全局统一缩进空格数缩进乱,直接解析报错
empty: ""当作空值empty: null空字符串≠空值,两种类型不能混用

🚀 实际应用示例

Docker Compose
services:web:image:nginx:latestports:-"80:80"environment:NODE_ENV:production

Kubernetes
apiVersion:v1kind:Podmetadata:name:my-podspec:containers:-name:nginximage:nginx:1.21ports:-containerPort:80

Spring Boot
server:port:8080spring:datasource:url:jdbc:mysql://localhost:3306/mydbusername:rootpassword:secret

🔧 进阶语法

多行字符串

保留换行:

description:|第一行 第二行 第三行

折叠为一行:

summary:>这是一段很长的文字 会被折叠成一行

锚点与引用(复用配置)

defaults:&defaultsadapter:postgreshost:localhostdevelopment:<<:*defaultsdatabase:dev_dbproduction:<<:*defaultshost:prod-db.example.com

类型强制转换

age:!!str25flag:!!bool"true"price:!!float"9.99"

📌 YAML 速查总结

  • ✔ 使用缩进表示结构(禁止 Tab)
  • ✔ 键值对:key: value
  • ✔ 列表:- item
  • ✔ 支持注释:# comment
  • ✔ 支持多行字符串(|/>)
  • ✔ 支持引用(&/*/<<)
  • ✔ 适合配置文件与 DevOps 场景
测试效果


🎯 一句话总结

YAML 的本质是:

用“人类友好的缩进结构”替代“机器友好的括号结构”。

📝 实战互动征集:

结合项目场景聊聊,你会优先选 JSON 还是 YAML?欢迎在评论区分享你的选型思路与实操技巧。

相关新闻

  • 全网封神|10套9.1+高分Claude Code精品教程(视频+文档双版),零基础直达企业级开发!
  • .NET 8 与 .NET 9 即将停止支持,微软建议升级至 .NET 10
  • 创梦汤锅学习日记day45

最新新闻

  • 矩阵世界的“数字1”:理解线性代数中的单位矩阵
  • Spring AOP 顺序问题:切面都生效了,不代表顺序对
  • Agentic 范式下的视频画质优化:火山引擎的新路径
  • JDK系列14:JDK 17 LTS 深度解析|虚拟线程、强封装、生产级ZGC 全原理与企业实战
  • 理科论文AI写作怎么写?4款工具实验分析支持
  • Linux join 命令超全详解:文本文件关联合并神器,数据处理必备

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号