如何通过Jolt依据输入数组实现JSON对象拆分?
Jolt转换:拆分含数组address的对象为多个独立条目
需求清晰:把输入数组中每个带address数组的对象,按数组内的每个元素拆成单独对象,新对象保留原对象的name、dept字段,address字段对应数组里的单个元素。
输入JSON
[ { "name": "Mike", "dept": "IT", "address": [ "Austria", "India", "US" ] }, { "name": "Shelly", "dept": "Pharma", "address": [ "Finland", "UK" ] } ]
对应的Jolt规范
[ { "operation": "shift", "spec": { "*": { "address": { "*": { "@2,name": "[&3].name", "@2,dept": "[&3].dept", "@": "[&3].address" } } } } } ]
规范说明
- 第一层
*:遍历输入数组中的每一个原始对象 address:定位到当前对象的address数组- 内层
*:遍历address数组中的每一个元素 @2,name/@2,dept:向上回溯2层,获取原始对象的name和dept字段[&3]:确定新数组的索引位置,确保每个数组元素对应一个独立的新对象@:直接引用当前遍历到的address数组元素值,赋值给新对象的address字段
转换后的输出
[ { "name": "Mike", "dept": "IT", "address": "Austria" }, { "name": "Mike", "dept": "IT", "address": "India" }, { "name": "Mike", "dept": "IT", "address": "US" }, { "name": "Shelly", "dept": "Pharma", "address": "Finland" }, { "name": "Shelly", "dept": "Pharma", "address": "UK" } ]
内容的提问来源于stack exchange,提问作者Nishu
相关产品推荐
相关产品推荐

