如何通过Jolt将JSON键值对转换为键值对象数组?
解决Jolt通用键值对拆分转换问题
你需要把任意扁平JSON的键值对,统一转换成keyValuePair数组内的key/value对象,核心是要让同一组键值对对应数组里的同一个元素。
你之前的规则里,keyValuePair[]每次赋值都会生成新的数组元素,导致key和value被拆成独立对象。只需要调整索引关联方式,用[&1]绑定同一层级的键值对到同一个数组位置即可:
正确的Jolt转换规则
[ { "operation": "shift", "spec": { "*": { "$": "keyValuePair[&1].key", "@": "keyValuePair[&1].value" } } } ]
验证示例
- 输入JSON:
{ "key1": "value1", "key2": "value2" }
- 转换后输出:
{ "keyValuePair": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" } ] }
这里的&1表示引用当前层级(即*匹配的每个键的层级)的索引,这样每个键对应的key和value会被放到数组的同一个位置里,完美实现通用的键值对拆分。
内容的提问来源于stack exchange,提问作者Chris Picard
相关产品推荐
相关产品推荐

