YAML (YAML Ain't a Markup Language),通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
{
"TransExcute": {
"InitDefault":"Console.WriteLine(\"123\");" ,
"IdleToArming": "Console.WriteLine(\"456\");",
"ArmingDefault":"Console.WriteLine(\"789\");"
}
}
TransExcute:
InitDefault: 'Console.WriteLine("123");'
IdleToArming: 'Console.WriteLine("456");'
ArmingDefault: 'Console.WriteLine("789");'
{
"AliasTable": {
"Debug": {
"GetPath": "/DT1/relay/Resource/DT/Debug",
"DefaultValue":1
},
"VirtualGCState": {
"GetPath": "/DT1/relay/Resource/DT/VirtualGCState"
}
}
}
AliasTable:
Debug:
GetPath: '/DT1/relay/Resource/DT/Debug'
DefaultValue: 1
VirtualGCState:
GetPath: '/DT1/relay/Resource/DT/VirtualGCState'
{
"States": [
{
"StateNo": 0,
"StateName": "Init",
"DefaultNs": 1,
"Transitions": []
},
{
"StateNo": 1,
"StateName": "Idle",
"DefaultNs": 1,
"Transitions": [
{
"TransitionName": "IdleToArming",
"ConditonExpr": "true",
"NextState": 0
}
]
}
],
"CurrentState":0,
"RunCycleTime":10000
}
States:
- StateNo: 0
StateName: 'Init'
DefaultNs: 1
Transitions: []
- StateNo: 1
StateName: 'Idle'
DefaultNs: 1
Transitions:
- TransitionName: 'IdleToArming'
ConditonExpr: 'true'
NextState: 0
CurrentState: 0
RunCycleTime: 10000
有YamlDotNet的nuget包 但是看了以下没找到类似于json的JsonConvert.PopulateObject的功能,只能一个成员变量一个成员变量的赋值,就比较累赘。
本文章使用limfx的vscode插件快速发布