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

WSO2序列中向现有JSON高效添加新字段的解决方案咨询

解决方案

以下两种方案都可以保留原有JSON全部结构,不会额外新增不存在的字段、也不会填充null值:

方案1:使用Script Mediator(最优选择)

直接通过内置JS脚本操作消息 payload,代码量最少,性能损耗最低:

<script language="js"><![CDATA[
    // 获取原请求完整JSON
    var payload = mc.getPayloadJSON();
    // 直接追加新字段,值也可以通过mc.getProperty("属性名")从上下文获取
    payload.nationality = "Italian";
    // 替换回消息体
    mc.setPayloadJSON(payload);
]]></script>

方案2:使用Enrich Mediator(无脚本原生实现)

如果需要纯配置实现,可以用Enrich mediator做字段合并:

<!-- 存储要新增的字段值 -->
<property name="nationalityVal" value="Italian" scope="default" type="STRING"/>
<!-- 构造仅包含新增字段的临时JSON -->
<payloadFactory media-type="json">
    <format>{"nationality": "$1"}</format>
    <args>
        <arg evaluator="xml" expression="$ctx:nationalityVal"/>
    </args>
</payloadFactory>
<!-- 将临时字段合并到原JSON根节点下 -->
<enrich>
    <source clone="true" xpath="json-eval($.nationality)"/>
    <target action="child" xpath="json-eval($)"/>
</enrich>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:45:03