如何使用Jolt对JSON对象内数值求和并添加‘total accounts’字段?
使用Jolt实现账户数值求和并添加
total accounts字段 输入
{ "accounts": { "canara": 1, "sbi": 0, "axis": 1, "hdfc": 0 } }
期望输出
{ "canara": 1, "sbi": 0, "axis": 1, "hdfc": 0, "total accounts": 2 }
Jolt转换规则
推荐采用灵活适配的数组收集+求和方案,后续新增账户无需修改规则:
[ { "operation": "shift", "spec": { "accounts": { "*": ["&", "account_values[]"] } } }, { "operation": "modify-overwrite-beta", "spec": { "total accounts": "=sum(@(1,account_values))" } }, { "operation": "remove", "spec": { "account_values": "" } } ]
规则解释
- shift操作:将
accounts下的所有账户键值对直接映射到根节点,同时把每个账户的数值存入临时数组account_values,确保账户数量变动时求和逻辑仍有效。 - modify-overwrite-beta操作:调用Jolt内置的
sum函数,对临时数组中的数值求和后赋值给total accounts字段。 - remove操作:清理临时生成的
account_values数组,得到整洁的最终输出结构。
如果账户数量固定,也可以用直接指定字段的求和方式,无需临时节点,但账户变动时需要手动修改字段列表:
[ { "operation": "shift", "spec": { "accounts": { "*": "&" } } }, { "operation": "modify-overwrite-beta", "spec": { "total accounts": "=sum(@(1,canara),@(1,sbi),@(1,axis),@(1,hdfc))" } } ]
内容的提问来源于stack exchange,提问作者shwetha
相关产品推荐
相关产品推荐

