1、TOML的简介
TOML 的目标是成为一个极简的配置文件格式
。TOML 被设计成可以无歧义地被映射为哈希表
,从而被多种语言解析。
2、语法
注释
使用 # 表示注释
日期时间
使用 ISO 8601 完整格式。
1979-05-27T07:32:00Z
数组
数组使用方括号包裹
。空格会被忽略
。元素使用逗号分隔
。注意,不允许混用数据
类型。
[ 1, 2, 3 ]
[ “red”, “yellow”, “green” ]
[ [ 1, 2 ], [3, 4, 5] ]
[ [ 1, 2 ], [“a”, “b”, “c”] ] # 这是可以的。
[ 1, 2.0 ] # 注意:这是不行的。
数组可以多行。也就是说,除了空格之外,方括号间的换行也会被忽略。在关闭方括号前的最终项后的逗号是允许的。
表格
表格(也叫哈希表或字典)是键值对的集合
。它们在方括号内,自成一行。注意和数组相区分,数组只有值。
[table]
在此之下,直到下一个 table 或 EOF 之前,是这个表格的键值对。键在左,值在右,等号在中间。键以非空字符开始,以等号前的非空字符为结尾。键值对是无序的。
[table]
key = “value”
你可以随意缩进,使用 Tab 或空格。为什么要缩进呢?因为你可以嵌套表格。
嵌套表格的表格名称中使用.
。你可以任意命名你的表格,只是不要用点,点是保留的。
[dog.tater]
type = “pug”
以上等价于如下的 JSON 结构:
{ “dog”: { “tater”: { “type”: “pug” } } }
表格数组
最后要介绍的类型是表格数组。表格数组可以通过包裹在双方括号内的表格名来表达。使用相同的双方括号名称的表格是同一个数组的元素。表格按照书写的顺序插入。双方括号表格如果没有键值对,会被当成空表
。
[[products]]
name = "Hammer"
sku = 738594937
[[products]]
[[products]]
name = "Nail"
sku = 284758393
color = "gray"
等价于以下的 JSON 结构:
{
"products": [
{ "name": "Hammer", "sku": 738594937 },
{ },
{ "name": "Nail", "sku": 284758393, "color": "gray" }
]
}