YAML
YAML节点用于在YAML格式和JavaScript对象之间进行转换。
输入
- payload (string|object): YAML字符串或JavaScript对象
输出
- payload (object|string): 转换后的JavaScript对象或YAML字符串
详细说明
YAML节点可以将YAML字符串解析为JavaScript对象,也可以将JavaScript对象转换为YAML字符串。YAML是一种人类可读的数据序列化标准。
配置选项
- 操作: 选择转换方向
- YAML字符串 → JavaScript对象: 解析YAML
- JavaScript对象 → YAML字符串: 生成YAML
- 自动检测: 根据输入类型自动选择
示例
YAML转对象
javascript
// 输入消息
msg.payload = `
name: 张三
age: 25
address:
city: 北京
street: 长安街
zipcode: 100000
hobbies:
- 读书
- 游泳
- 编程
married: false
`;
// 输出消息
msg.payload = {
name: "张三",
age: 25,
address: {
city: "北京",
street: "长安街",
zipcode: 100000
},
hobbies: ["读书", "游泳", "编程"],
married: false
};
对象转YAML
javascript
// 输入消息
msg.payload = {
server: {
host: "localhost",
port: 8080,
ssl: true
},
database: {
type: "mysql",
host: "db.example.com",
port: 3306,
credentials: {
username: "admin",
password: "secret123"
}
},
features: ["logging", "monitoring", "backup"]
};
// 输出消息
msg.payload = `server:
host: localhost
port: 8080
ssl: true
database:
type: mysql
host: db.example.com
port: 3306
credentials:
username: admin
password: secret123
features:
- logging
- monitoring
- backup`;
处理复杂数据类型
javascript
// 输入消息
msg.payload = `
# 配置文件示例
app_name: "我的应用"
version: 1.2.3
release_date: 2024-01-15
settings:
debug: true
max_connections: 100
timeout: 30.5
allowed_ips:
- "192.168.1.1"
- "10.0.0.1"
null_value: null
`;
// 输出消息
msg.payload = {
app_name: "我的应用",
version: "1.2.3",
release_date: "2024-01-15",
settings: {
debug: true,
max_connections: 100,
timeout: 30.5,
allowed_ips: ["192.168.1.1", "10.0.0.1"],
null_value: null
}
};
应用场景
- 配置文件处理: 读取和生成YAML配置文件
- 数据交换: 在系统间交换YAML格式数据
- API响应: 处理返回YAML格式的API
- 文档生成: 生成人类可读的数据文档
- DevOps工具: 处理Docker Compose、Kubernetes等配置
注意事项
- YAML对缩进敏感,必须使用空格而不是制表符
- 字符串中的特殊字符可能需要引号包围
- 日期和时间会自动识别为相应的JavaScript类型
- 多行字符串支持多种格式(|、>等)
- 注释(#开头)在解析时会被忽略
- 某些JavaScript特性(如函数、undefined)无法直接转换为YAML