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

Mule 4:将键值对转换为含独立键值元素的对象

解决JSON键值对转key-value对象数组的问题

需求说明

将输入JSON中data数组内的对象,转换为每个元素都包含独立key(原属性名)和value(原属性值转字符串)的对象数组。

输入示例

{
    "data": [
        {
            "Amount": 20,
            "CostPrice": 50,
            "SellingPrice": 100,
            "FinalPrice": 120,
            "Quantity": 2,
            "Tax": 21.6
        }
    ]
}

输出示例

{
    "data": [
        {
            "key": "Amount",
            "value": "20"
        },
        {
            "key": "CostPrice",
            "value": "50"
        },
        {
            "key": "SellingPrice",
            "value": "100"
        },
        {
            "key": "FinalPrice",
            "value": "120"
        },
        {
            "key": "Quantity",
            "value": "2"
        },
        {
            "key": "Tax",
            "value": "21.6"
        }
    ]
}

JavaScript实现方案

以下是直接可运行的代码,实现从输入到输出的转换:

// 输入JSON字符串
const inputJson = `{
    "data": [
        {
            "Amount": 20,
            "CostPrice": 50,
            "SellingPrice": 100,
            "FinalPrice": 120,
            "Quantity": 2,
            "Tax": 21.6
        }
    ]
}`;

// 解析为JavaScript对象
const inputObj = JSON.parse(inputJson);

// 核心转换逻辑:遍历原对象的键值对,生成目标格式的对象数组
const transformedData = Object.entries(inputObj.data[0]).map(([key, value]) => ({
    key,
    value: String(value) // 将数值转为字符串,匹配输出要求
}));

// 构建最终输出对象
const outputObj = {
    data: transformedData
};

// 转换为带缩进的JSON字符串
const outputJson = JSON.stringify(outputObj, null, 4);

// 打印结果
console.log(outputJson);

代码说明

  • Object.entries(inputObj.data[0]):将原对象转换为[键, 值]格式的数组,方便遍历。
  • map()方法:遍历每一组键值对,生成包含key和value的新对象。
  • String(value):确保所有数值类型的属性值转为字符串,与输出示例的格式一致。
  • JSON.stringify(outputObj, null, 4):将最终对象转换为带4空格缩进的格式化JSON字符串,提升可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:35:29