Skip to content

JSON

JSON格式数据的解析和生成。

输入

包含JSON字符串或JavaScript对象的消息。

输出

解析后的JavaScript对象或JSON字符串。

详细说明

JSON节点可以在JSON字符串和JavaScript对象之间进行转换。

转换模式

  • 自动检测: 自动检测输入类型并转换
  • 总是转换为对象: 将JSON字符串转换为对象
  • 总是转换为字符串: 将对象转换为JSON字符串

配置选项

  • 属性: 要转换的消息属性(默认为payload)
  • 格式化: 是否格式化输出的JSON字符串
  • 错误处理: 解析错误时的处理方式

示例

JSON字符串转对象:

javascript
// 输入
msg = {
    payload: '{"name": "张三", "age": 25, "city": "北京"}'
}

// 输出
msg = {
    payload: {
        name: "张三",
        age: 25,
        city: "北京"
    }
}

对象转JSON字符串:

javascript
// 输入
msg = {
    payload: {
        temperature: 25.6,
        humidity: 68.2,
        timestamp: "2024-03-20T10:30:00Z"
    }
}

// 输出
msg = {
    payload: '{"temperature":25.6,"humidity":68.2,"timestamp":"2024-03-20T10:30:00Z"}'
}

格式化JSON输出:

javascript
// 配置:格式化 = true
// 输入
msg = {
    payload: {
        device: "sensor01",
        data: {
            temperature: 25.6,
            humidity: 68.2
        }
    }
}

// 输出
msg = {
    payload: `{
  "device": "sensor01",
  "data": {
    "temperature": 25.6,
    "humidity": 68.2
  }
}`
}

处理数组:

javascript
// 输入
msg = {
    payload: '[{"id": 1, "name": "设备1"}, {"id": 2, "name": "设备2"}]'
}

// 输出
msg = {
    payload: [
        {id: 1, name: "设备1"},
        {id: 2, name: "设备2"}
    ]
}

转换其他属性:

javascript
// 配置:属性 = "data"
// 输入
msg = {
    payload: "其他数据",
    data: '{"status": "success", "result": 123}'
}

// 输出
msg = {
    payload: "其他数据",
    data: {
        status: "success",
        result: 123
    }
}

错误处理:

javascript
// 输入(无效JSON)
msg = {
    payload: '{"name": "张三", "age": 25'  // 缺少闭合括号
}

// 输出(解析失败)
msg = {
    payload: '{"name": "张三", "age": 25',
    error: {
        message: "Unexpected end of JSON input",
        source: {
            id: "json123",
            type: "json",
            name: "JSON解析"
        }
    }
}

应用场景

  • API数据处理
  • 配置文件解析
  • 数据格式转换
  • 消息序列化

注意事项

  • 确保JSON格式正确
  • 处理解析错误
  • 注意循环引用问题
  • 大数据量时注意性能

蜀ICP备2025139593号