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

如何在Jolt中提取对象键并生成$original初始化对象

给指定层级JSON对象添加$original属性的实现方案

需求说明

需要在输入JSON的指定层级对象中,新增一个名为$original的属性:

  • $original是一个对象,包含当前层级的所有原对象键
  • 每个键对应的值初始化为空对象{}

输入示例

{
  "PartyStatus": {
    "item": [
      {
        "RleStsVal": {
          "prtyRleStsVal": "0001",
          "prtyRleStsTyp": "Active"
        },
        "PrtyRleStgCd": {
          "PrtyRleStgTp": "0002",
          "PrtyRleStgDesc": "Prospect"
        }
      }
    ]
  }
}

预期输出示例

{
  "PartyStatus": {
    "item": [
      {
        "RleStsVal": {
          "prtyRleStsVal": "0001",
          "prtyRleStsTyp": "Active"
        },
        "RleStgCd": {
          "PrtyRleStgTp": "0002",
          "PrtyRleStgDesc": "Prospect"
        },
        "$original": {
          "RleStgCd": {},
          "RleStsVal": {}
        }
      }
    ]
  }
}

实现思路(以JavaScript为例)

  1. 定位目标层级:先找到需要处理的指定层级对象(示例中为PartyStatus.item[0])
  2. 可选:键名修改:如果需要调整原对象的键名(如示例中PrtyRleStgCd改为RleStgCd),先完成键名映射与替换
  3. 生成$original对象:遍历目标对象的所有键,为每个键创建空对象值,组合成$original
  4. 添加$original到目标对象:将生成的$original属性挂载到目标对象上

代码实现

// 输入JSON数据
const input = {
  "PartyStatus": {
    "item": [
      {
        "RleStsVal": {
          "prtyRleStsVal": "0001",
          "prtyRleStsTyp": "Active"
        },
        "PrtyRleStgCd": {
          "PrtyRleStgTp": "0002",
          "PrtyRleStgDesc": "Prospect"
        }
      }
    ]
  }
};

// 1. 定位到指定层级的目标对象
const targetObj = input.PartyStatus.item[0];

// 2. 处理键名修改(根据需求可选)
const keyMapping = { "PrtyRleStgCd": "RleStgCd" };
Object.keys(keyMapping).forEach(oldKey => {
  if (targetObj.hasOwnProperty(oldKey)) {
    targetObj[keyMapping[oldKey]] = targetObj[oldKey];
    delete targetObj[oldKey];
  }
});

// 3. 生成$original对象
const original = {};
Object.keys(targetObj).forEach(key => {
  original[key] = {};
});

// 4. 将$original添加到目标对象
targetObj.$original = original;

// 打印结果
console.log(JSON.stringify(input, null, 2));

注意事项

  • 如果不需要修改键名,直接删除代码中键名映射的部分即可
  • 若指定层级是动态路径(如不确定数组索引或嵌套深度),可以通过递归遍历或路径解析函数来定位目标对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:17:21