使用JOLT Transformation拆分JSON对象键为独立数组元素
JOLT转换方案
需求说明
将输入的JSON对象数组,把每个对象的每个键值对拆分为独立的数组元素,每个元素包含value(对应原键的值)、variable(对应原键名),并添加固定值为device的model字段。
输入JSON
[ { "Company": "Tesla", "Age": 30.2 }, { "Company": "Facebook", "Age": 40.5 }, { "Company": "Amazon", "Age": 60 } ]
期望输出JSON
[ { "value": "Tesla", "variable": "Company", "model": "device" }, { "value": "Facebook", "variable": "Company", "model": "device" }, { "value": "Amazon", "variable": "Company", "model": "device" }, { "value": 30.2, "variable": "Age", "model": "device" }, { "value": 40.5, "variable": "Age", "model": "device" }, { "value": 60, "variable": "Age", "model": "device" } ]
可行的JOLT Spec
[ { "operation": "shift", "spec": { "*": { "*": { "@": "[].value", "$": "[].variable" } } } }, { "operation": "default", "spec": { "*": { "model": "device" } } } ]
规则解释
Shift操作:
- 外层
*匹配输入数组中的每一个对象 - 内层
*匹配每个对象中的每一个键 @引用当前键对应的值,映射到新数组元素的value字段$引用当前键的名称,映射到新数组元素的variable字段[]表示每处理一个键值对就生成一个新的数组元素,实现所有键值对的展开
- 外层
Default操作:
- 遍历新数组中的每一个对象,为其添加固定字段
model,值设为device
- 遍历新数组中的每一个对象,为其添加固定字段
内容的提问来源于stack exchange,提问作者Sumit Manna
相关产品推荐
相关产品推荐

