Skip to content

标记语言

参考资料

概念

  • 描述一个对象, 本质上是对象 / 数组 / key-value 的嵌套

XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- 第一行描述, 这是注释 -->
<message>
    <warning>
         Hello World
    </warning>
</message>

YAML

languages:
  - Ruby # 数组
  - Perl
  - Python 
websites:
  YAML: yaml.org # 对象 
  Ruby: ruby-lang.org 
  Python: python.org 
  Perl: use.perl.org

# 纯量
boolean: 
    - TRUE  # true,True都可以
    - FALSE  # false, False都可以
float:
    - 3.14
    - 6.8523015e+5  # 可以使用科学计数法
int:
    - 123
    - 0b1010_0111_0100_1010_1110    # 二进制表示
null:
    nodeName: 'node'
    parent: ~  # 使用~表示null
string:
    - 哈哈
    - 'Hello world'  # 可以使用双引号或者单引号包裹特殊字符
    - newline
      newline2    # 字符串可以拆成多行, 每一行会被转化成一个空格
date:
    - 2018-02-17    # 日期必须使用ISO 8601格式, 即 yyyy-MM-dd
datetime: 
    -  2018-02-17T15:02:31+08:00    # 时间使用 ISO 8601 格式, 时间和日期之间使用 T 连接, 最后使用 + 代表时区

TOML

# 这是一个 TOML 文档

var_title = "TOML 示例" # 基本语法, 支持类型同上

[owner] # 表, 直至下一个表头
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

[database]
enabled = true
ports = [ 8000, 8001, 8002 ] # 数组
data = [ ["delta", "phi"], [3.14] ]
temp_targets = { cpu = 79.5, case = 72.0 } # 内联表

[servers]

[servers.alpha]
ip = "10.0.0.1"
role = "前端"

[servers.beta]
ip = "10.0.0.2"
role = "后端"

INI

; Win 配置语言,最简单的
[obj1] ;节
x=1
y=2
[obj2]
x=6

JSON

  • json 中有 null 类型
{}对象
[]数组
{
    "sites": [
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
    ]
}