配置文件小结

ini

语法: key = value
注释: ;这是注释
表达能力: 简单键值对, 可用selection变相实现数组
功能: 配置文件

[serverA]
ip = 192.168.1.1
port = 8080
[serverB]
ip = 192.168.1.2
port = 8080

xml

语法: value
key又叫tag,value叫data,key可以有属性,叫metadata
注释:
表达能力: 键值对, 数组, map, 层层嵌套形成树状结构
功能: 配置文件, 数据交换

<mail-list>
  <mail important=false>
    <title>Mail 1</title>
    <author>Tom</author>
    <content>I am a cat</content>
  </mail>
  <!-- this is comment -->
  <mail important=true>
    <title>Mail 2</title>
    <author>Jerry</author>
    <content>I am a mouse</content>
  </mail>
</mail-list>

json

语法: js object
注释: 无
表达能力: 键值对, 数组, map, 层层嵌套形成树状结构
功能: 配置文件, 数据交换

{
  "mailList":[
    {
      "title": "Mail 1",
      "author": "Tom",
      "content": "I am a cat"
    },
    {
      "title": "Mail 2",
      "author": "Jerry",
      "content": "I am a mouse"
    }
  ]
}

yaml

语法: 缩进, :, -, <<, *
注释: # 这是注释
表达能力: 键值对, 数组, map, 层层嵌套形成树状结构
功能: 配置文件

users:
  - Tom
  - Jerry

# 锚点
defaults: &defaults
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  <<: *defaults # 引用

test:
  database: myapp_test
  <<: *defaults # 引用

总结

类型 语法 注释 表达能力 配置文件能力 数据交换能力
ini 简单 ; -
json 不易阅读
xml <!-- 注释 --> 不易阅读 数据繁杂,效率低
yaml # 语法复杂 -
根据具体情况使用
原文地址:https://www.cnblogs.com/wayland3/p/12119899.html