求助:使用JOLT实现JSON嵌套数组的字符串拼接转换
需求与JOLT解决方案
输入JSON
[ { "name": "Project1", "Addresses": [ [ "B24", "Niyam Street", "67897", "New York" ], [ "A14", "Prinston Str", "London" ] ] }, { "name": "Project2", "Addresses": [ [ "123", "Portland Street", "234" ], [ "Lalbag", "Kolaba" ], [ "8th Avenue", "3rd Signal" ] ] } ]
期望输出JSON
[ { "name": "Project1", "Addresses": [ "B24 Niyam Street 67897 New York", "A14 Prinston Str London" ] }, { "name": "Project2", "Addresses": [ "123 Portland Street 234", "Lalbag Kolaba", "8th Avenue 3rd Signal" ] } ]
有效JOLT规格
[ { "operation": "shift", "spec": { "*": { "name": "[&1].name", "Addresses": { "*": { "*": "[&3].Addresses[&2].&" } } } } }, { "operation": "modify-overwrite-beta", "spec": { "*": { "Addresses": { "*": "=join(' ', @(1))" } } } } ]
实现思路
- Shift阶段:通过shift操作保留原有数据结构,将二维数组内的每个元素映射到对应层级位置,确保后续能准确遍历每个子数组。
- Modify阶段:借助
modify-overwrite-beta操作,搭配join(' ', @(1))函数,把每个子数组的元素用空格拼接成字符串,替换原有的子数组。该方案完全支持动态大小的二维数组,无论子数组元素数量多少,都能自动完成拼接。
内容的提问来源于stack exchange,提问作者Abhinav Prakash
相关产品推荐
相关产品推荐

