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格式正确
- 处理解析错误
- 注意循环引用问题
- 大数据量时注意性能