TOML Reference

TOML
Tom's Obvious, Minimal Language

TOML 被设计成可以无歧义地映射为哈希表。(相当于 JSON 对象吧)

注释

# 这是一个全行注释
key = "value" # 这是一个行末注释
another = "# 这不是一个注释"

键值对

TOML 文档最基本的构成区块是键值对。

name = "Orange"
physical.color = "orange"
physical.shape = "round"
site."google.com" = true

等价于 JSON 的如下结构:

{
"name": "Orange",
"physical": {
"color": "orange",
"shape": "round"
},
"site": {
"google.com": true
}
}

字符串

多行基本字符串由三个引号包裹,允许折行。

  • 紧随开头引号的那个换行会被去除
  • 其它空白和换行会被原样保留
str1 = """
Roses are red
Violets are blue"""

数组

数组是内含值的方括号。

  • 空白会被忽略
  • 子元素由逗号分隔
  • 数组可以包含与键值对所允许的相同数据类型的值
  • 可以混合不同类型的值
integers = [ 1, 2, 3 ]
colors = [ "红", "黄", "绿" ]
nested_array_of_ints = [ [ 1, 2 ], [3, 4, 5] ]
nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ]
string_array = [ "所有的", '字符串', """是相同的""", '''类型''' ] # 允许混合类型的数组
numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]
contributors = [
"Foo Bar <foo@example.com>",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]
  • 数组可以跨行
  • 数组的最后一个值后面可以有终逗号(也称为尾逗号)
  • 值、逗号、结束括号前可以存在任意数量的换行和注释
  • 数组值和逗号之间的缩进被作为空白对待而被忽略
integers2 = [
1, 2, 3
] integers3 = [
1,
2, # 这是可以的
]

表(也被称为哈希表或字典)是键值对的集合。

  • 它们由表头定义,连同方括号作为单独的行出现
  • 看得出表头不同于数组,因为数组只有值
  • 在它下方,直至下一个表头或文件结束,都是这个表的键值对
  • 表不保证保持键值对的指定顺序
[table-1]
key1 = "some string"
key2 = 123 [table-2]
key1 = "another string"
key2 = 456

等价于:

{
"table-1": {
"key1": "some string",
"key2": 123
},
"table-2": {
"key1": "another string",
"key2": 456
}
}

表数组

这可以通过把表名写在双方括号里的表头来表示

  • 表头的第一例定义了这个数组及其首个表元素,而后续的每个则在该数组中创建并定义一个新的表元素
  • 这些表按出现顺序插入该数组
[[products]]
name = "Hammer"
sku = 738594937 [[products]] # 数组里的空表 [[products]]
name = "Nail"
sku = 284758393 color = "gray"

等价于:

{
"products": [
{ "name": "Hammer", "sku": 738594937 },
{ },
{ "name": "Nail", "sku": 284758393, "color": "gray" }
]
}

TOML 使用的更多相关文章

  1. Golang学习--TOML配置处理

    上一篇文章中我们学会了使用包管理工具,这样我们就可以很方便的使用包管理工具来管理我们依赖的包. 配置工具的选择 但我们又遇到了一个问题,一个项目通常是有很多配置的,比如PHP的php.ini文件.Ng ...

  2. 如何使用 toml 配置 SpaceVim

    配置 SpaceVim 主要包括以下几个内容: 设置 SpaceVim 选项 启动/禁用模块 添加自定义插件 添加自定义按键映射以及插件配置 设置SpaceVim选项 原先,在 init.vim 文件 ...

  3. TOML简介 (转) TOML的由来

    TOML的由来 配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Prest ...

  4. 深入对比TOML,JSON和YAML

    坦率地说,在我开始与Hugo TOML合作之前,我感到羞耻是一个需要发现的新领域,但我对YAML和JSON非常熟悉.本文将帮助您了解如何通过不同的数据格式构建数据.       在Hugo中,您可以将 ...

  5. toml

    其目标是成为一个小规模的易于使用的语义化配置文件格式.TOML被设计为可以无二义性的转换为一个哈希表(Hash table). # 这是一个TOML文件 title = "TOML Exam ...

  6. TOML 详解

    TOML的由来 配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Prest ...

  7. Go学习笔记一:解析toml配置文件

    本文系作者原创,转载请注明出处https://www.cnblogs.com/sonofelice/p/9085291.html . 一些mysql或者日志路径的信息需要放在配置文件中.那么本博文主要 ...

  8. Golang 的 TOML库

    TOML 的全称是 Tom's Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner. TOML 的目标是成为一个极简的配 ...

  9. TOML简介 (转)

    TOML的由来 配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Prest ...

  10. 什么是TOML?

    配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Preston-Werne ...

随机推荐

  1. 3.8折钜惠,瑞芯微RK3568J国产工业评估板“限时折扣”!

  2. 开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)

    目录 4 USB 4G 模块测试 41 4.1 网络功能测试 42 4.2 短信功能测试 43 4.3 GPS 定位功能测试 44 4.4 通话功能测试 45 4.5 测试程序编译 46 5 USB ...

  3. 一次Java服务内存过高的分析过程

    现象 年前,收到了短信报警,显示A服务的某台机器内存过高,超过80% 如上图所示,内存会阶段性增加.奇怪的是,十多台机器中只有这一台有这个问题 堆内内存分析 最先怀疑是内存泄漏的问题,所以首先使用jm ...

  4. 你有对 Vue 项目进行哪些优化?

    (1)代码层面的优化 v-if 和 v-show 区分使用场景 computed 和 watch 区分使用场景 v-for 遍历必须为 item 添加 key,且避免同时使用 v-if 图片资源懒加载 ...

  5. Mac mysql5.7.x my.cnf默认配置

    配置如下 [client] port = 3306 default-character-set=utf8 [mysqld] character_set_server=utf8 datadir=/usr ...

  6. 如何删除Git中缓存的用户名和密码

    昨天在上传代码的时候提示输入用户名密码,结果输错了3次就没有提示框了,就一直报错(身份验证失败),没办法提交代. 在使用git的过程中,我们也会经常遇到以前保存在git的用户名密码忘记了,或者不用了. ...

  7. log4js 的安装设置和实例

    1. 安装 yarn add log4js -D 2.设置 const log4js = require('log4js') 3.实例 var log = log4js.getLogger(); // ...

  8. [项目自荐] 交叉编译njs并使用Nginx搭建自由的个人网盘:vList5

    这个博客好久没有打理了,最近才想起来 这篇文章是以下 5 篇文章的组合,希望这个免费的项目能实现他的初衷吧 vList5:部署指南 vList5.3 全面加密,从我做起 njs 从入门(交叉编译)到入 ...

  9. [oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键

    转义字符 回忆上次内容 最近玩的是\n.\r 之外的转义序列 \a是 ␇ (bell) \t是 水平制表符 \v是 换行不回车 通过 16 进制数值转义 \xhh 把(hh)16 进制对应的 asci ...

  10. 使用 Node.js 和 Express 构建基本的 Web API

    使用 Node.js 和 Express 构建 Web API Web API Node.js 中的 http 模块 创建 Express 框架 Web 应用程序 Express 框架 Express ...