@yuliqi/node-red-contrib-qmapping 0.0.2

Node-RED 节点,用于字段映射和数据转换,支持数组/对象映射、函数处理、默认值、动态 key 等

npm install @yuliqi/node-red-contrib-qmapping

用于字段映射和数据转换,支持数组/对象映射、函数处理、默认值、动态 key 等。

安装

npm install @yuliqi/node-red-contrib-qmapping

🧩 mapping 配置说明文档

🎯 作用

用于把原始数据转换为目标结构,支持字段提取、函数处理、默认值、数组/对象映射、忽略特定值等。


🧱 基本写法

const mapping = {
  key1: 'a.b.c',                    // 等价于 { path: 'a.b.c' }
  key2: {
    path: 'x.y',
    func: 'v => v.trim()',
    default: '未知',
    omitValues: [null, ''],
    fallbackToPathString: true
  }
}

🔁 数组映射

const mapping = {
  list: {
    path: 'data.items[]',
    mapping: {
      id: 'id',
      name: {
        path: 'info.name',
        func: 'v => v.toUpperCase()'
      }
    }
  }
}

🔗 对象嵌套映射

const mapping = {
  user: {
    path: 'userInfo',
    mapping: {
      name: 'name',
      age: {
        path: 'details.age',
        default: 0
      }
    }
  }
}

💡 特殊写法:_ 占位符

用于动态 key 的场景,例如字段名未知,但值结构确定:

const mapping = {
  "_": {
    path: "userList",
    mapping: {
      _: {
        path: "*",  // 表示遍历对象的每个 key
        mapping: {
          name: "name",
          age: "age"
        }
      }
    }
  }
}

也支持单个对象中仅保留特定字段:

const mapping = {
  "_": {
    ke: "value"
  }
}
// 等价于从整个对象中提取 key 为 "ke",值为 "value"

⚙️ 配置字段说明

字段名 类型 说明
path string 数据路径,如 a.b.c,数组用 path[] 表示
func string 或数组 对取到的值进行处理,支持 async
default any 当取值为空时,使用默认值
omitValues any[] 如果值等于这些内容,将被忽略
fallbackToPathString boolean 如果找不到 path,用 path 自身作为值(可用于常量注入)
"_" object 特殊字段,用于动态 key 或保留 key-value 结构

🧪 输入输出示例

输入:

{
  "data": {
    "users": {
      "u1": { "name": "Tom" },
      "u2": { "name": "Jerry" }
    }
  }
}

mapping:

{
  users: {
    path: 'data.users',
    mapping: {
      _: {
        path: '*',
        mapping: {
          name: 'name'
        }
      }
    }
  }
}

输出:

{
  "users": {
    "u1": { "name": "Tom" },
    "u2": { "name": "Jerry" }
  }
}

Node Info

Version: 0.0.2
Updated 3 weeks, 5 days ago
License: MIT
Rating: not yet rated

Categories

Actions

Rate:

Downloads

0 in the last week

Nodes

  • qmapping

Keywords

  • node-red
  • mapping
  • transform
  • json
  • qmapping

Maintainers