You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WSO2 Enterprise Integrator中提取JSON Payload键名并转换负载格式

WSO2 EI 动态转换TTN上报负载实现方案

核心逻辑

通过Script Mediator调用原生JavaScript遍历decoded_payload节点的所有动态键值对,无需硬编码传感器字段名,新增上报字段时无需修改中介器逻辑即可自动适配。

具体实现步骤

  1. 在处理TTN Webhook请求的 mediation 序列中添加Script Mediator,配置如下:
<script language="js"><![CDATA[
    // 读取传入的原始JSON负载
    var payload = mc.getPayloadJSON();
    var decodedPayload = payload.decoded_payload || {};
    var sensorsArray = [];

    // 遍历decoded_payload所有动态键,自动生成对应结构
    for (var sensorName in decodedPayload) {
        // 过滤原型链继承属性,只取对象自身的字段
        if (decodedPayload.hasOwnProperty(sensorName)) {
            sensorsArray.push({
                "SensorName": sensorName,
                "SensorData": decodedPayload[sensorName]
            });
        }
    }

    // 生成目标格式负载并写回消息上下文
    var result = {
        "Sensors": sensorsArray
    };
    mc.setPayloadJSON(result);
]]></script>
  1. 后续节点直接使用转换后的负载即可:
    转换后的Sensors数组会直接保存在消息体中,你可以直接对接DB Report Mediator或者数据服务,将数组批量写入SQL数据库,无需做额外字段适配。

适配场景说明

该方案支持任意新增的传感器上报字段,比如后续TTN上报新增distance、pressure等字段时,脚本会自动提取为对应的SensorName,无需调整现有中介器配置。

内容的提问来源于stack exchange,提问作者will valintine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:24:04