Jolt转换技术问询:将数组对象转为指定键值对结构
解决Jolt转换中动态键值映射的问题
我来帮你搞定这个Jolt转换的问题!你已经找对了方向——用shift操作来提取name作为动态键,现在只需要调整一下脚本的spec,就能把dataSample的值对应到对应的键下面。
先明确你的场景:
- 输入JSON:
[ { "name" : "foo", "dataSample" : "red" }, { "name" : "bar", "dataSample" : "amber" } ]
- 现有Jolt脚本:
[ { "operation" : "shift", "spec" : { "*" : { "name" : { "*" : "&" } } } } ]
- 目标输出:
{ "foo": "red", "bar": "amber" }
修正后的Jolt脚本
只需要调整shift操作的spec,让dataSample的值映射到name对应的键上:
[ { "operation": "shift", "spec": { "*": { "@dataSample": "@name" } } } ]
脚本原理解释
*:匹配输入数组中的每一个元素;@dataSample:引用当前元素里dataSample字段的值,作为要赋值的内容;@name:引用当前元素里name字段的值,作为目标对象的键;
这样一来,数组里的每个元素都会被转换成{ "name值": "dataSample值" }的形式,最终合并成你想要的键值对对象。
内容的提问来源于stack exchange,提问作者Mark Balmer
相关产品推荐
相关产品推荐

