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

如何使用JOLT将子节点indicator的值设置为父级店铺节点的值

实现方法:提取店铺的indicator值替换原节点

这事儿其实挺 straightforward 的,核心逻辑就是遍历stores下的每个店铺条目,把每个店铺对应的对象直接替换成它内部的indicator数值就行。我给你几个常用编程语言的实现方案,你可以根据自己的场景选:

Python 实现

Python里用字典推导式就能快速完成转换,代码简洁高效:

import json

# 原始输入的JSON字符串
input_json = '''{ "stores": { "1100": { "metric1": "27", "metric2": "3013775", "indicator": 8.96 }, "1200": { "metric1": "2", "metric2": "354418", "indicator": 5.64 } } }'''

# 解析JSON为Python字典
data = json.loads(input_json)

# 核心转换:遍历每个店铺,保留ID,替换为indicator值
data['stores'] = {store_id: details['indicator'] for store_id, details in data['stores'].items()}

# 输出格式化后的结果
print(json.dumps(data, indent=2))

运行后就能得到你想要的输出格式。

JavaScript 实现

不管是Node.js环境还是浏览器端,都可以用Object.entries和Object.fromEntries组合完成转换:

// 原始输入数据(如果是JSON字符串,先通过JSON.parse()解析)
const inputData = { 
  "stores": { 
    "1100": { "metric1": "27", "metric2": "3013775", "indicator": 8.96 }, 
    "1200": { "metric1": "2", "metric2": "354418", "indicator": 5.64 } 
  } 
};

// 核心转换:把店铺对象转成键值对数组,替换值后再转回对象
const transformedData = {
  stores: Object.fromEntries(
    Object.entries(inputData.stores).map(([storeId, details]) => [storeId, details.indicator])
  )
};

// 打印格式化后的结果
console.log(JSON.stringify(transformedData, null, 2));

通用思路(其他语言)

如果是Java、Go这类静态语言,思路也是一致的:

  • 先解析原始JSON为对应的数据结构(比如Java的Map,Go的map)
  • 遍历stores下的所有键值对
  • 创建一个新的映射结构,将每个店铺ID对应的值设置为原对象中的indicator字段
  • 最后将新结构序列化为JSON输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:47:47