JOLT列表语法求助:如何将嵌套JSON转为扁平化条目?
JOLT 列表展开解决方案
输入JSON
{ "Country": [ { "Name": "Angola", "AnimalNames.AnimalName": [ "Aspidelaps lubricus", "Atheris squamigera", "Atractaspis bibronii" ] }, { "Name": "Argentina", "AnimalNames.AnimalName": [ "Apis mellifera scutellata", "Bothrops alternatus", "Bothrops ammodytoides" ] } ] }
期望输出JSON
[ { "country_name":"Angola", "species":"Aspidelaps lubricus" }, { "country_name":"Angola", "species":"Atheris squamigera" }, { "country_name":"Angola", "species":"Atractaspis bibronii" }, { "country_name":"Argentina", "species":"Apis mellifera scutellata" }, { "country_name":"Argentina", "species":"Bothrops alternatus" }, { "country_name":"Argentina", "species":"Bothrops ammodytoides" } ]
JOLT 转换规范
[ { "operation": "shift", "spec": { "Country": { "*": { "AnimalNames.AnimalName": { "*": { "@2,Name": "[].country_name", "@": "[].species" } } } } } } ]
关键逻辑说明
- 层级遍历:
Country.*遍历每个国家对象,AnimalNames.AnimalName.*遍历每个国家下的所有物种,完成嵌套数组的逐层解析。 - 字段关联:
@2,Name向上回溯2层获取当前国家的名称,解决国家与物种的绑定问题;@直接取当前遍历到的物种名称。 - 数组展开:
[]为每个物种生成独立的数组元素,自动实现一对多的扁平化转换,避免出现分离的国家列表或物种列表。
内容的提问来源于stack exchange,提问作者sjlevel
相关产品推荐
相关产品推荐

