Skip to content

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

蜀ICP备2025139593号