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

WSO2 Integration Studio中JSON转换JS代码报错问题求助

问题原因与解决办法

错误原因

你写的{element}是ES6的对象扩展语法,普通现代JS环境(比如Node.js、新版浏览器)支持,但WSO2 Integration Studio内置的JavaScript引擎(多为旧版Rhino/Nashorn,对ES6特性支持有限)不识别这个语法,所以IDE会报语法错误。

另外你的代码还有两处疏漏:一是原输入的name是"esempio create",目标格式需要改成"example",当前代码没处理这个转换;二是element包含operation字段,目标格式的other_data里不需要这个字段,直接展开会把多余字段带进去。

替代实现方式

方式1:手动指定字段(字段固定时最稳妥)

直接逐个写入需要的字段,同时完成name的替换:

// 假设element是解析后的输入JSON对象
var otherData = {
    id: element.id,
    name: "example", // 替换原name为目标值
    status: element.status,
    country: element.country
};
var result = JSON.stringify({
    operations: [{
        operation: "C",
        element: {
            type: element.type,
            other_data: otherData
        }
    }]
});

方式2:用Object.assign过滤字段(字段较多时更高效)

复制element属性后删除不需要的字段,再替换name值:

var otherData = Object.assign({}, element);
// 删除不需要的字段
delete otherData.operation;
delete otherData.type;
// 替换name值
otherData.name = "example";
var result = JSON.stringify({
    operations: [{
        operation: "C",
        element: {
            type: element.type,
            other_data: otherData
        }
    }]
});

方式3:循环构建目标对象

遍历原对象属性,筛选并处理需要的字段:

var otherData = {};
var allowedFields = ["id", "name", "status", "country"];
for (var key in element) {
    if (allowedFields.includes(key)) {
        otherData[key] = key === "name" ? "example" : element[key];
    }
}
var result = JSON.stringify({
    operations: [{
        operation: "C",
        element: {
            type: element.type,
            other_data: otherData
        }
    }]
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:35:00