请求JOLT Transformation配置:实现指定JSON结构与数组格式转换
JOLT Transformation 配置方案
需求概述
- 将输入JSON中的
code字段重命名为status - 把
data节点下的所有字段展开到根层级 - 将空数组类型的
FSequences转为空字符串 - 将单元素数组类型的
token转为字符串值
输入JSON
{ "code": 200, "data": { "totalCount": 1, "SCount": 1, "FCount": 0, "FSequences": [], "token": [ 328358 ] }, "id": "ce27g26hvamob9lbd0eg" }
当前使用的JOLT配置
[ { "operation": "shift", "spec": { "data": { "*": "&" }, "status|id": "&" } } ]
期望输出
{ "totalCount" : 1, "SCount" : 1, "FCount" : 0, "FSequences" : "", "token" : "328358", "status" : 200, "id" : "ce27g26hvamob9lbd0eg" }
符合需求的JOLT配置
[ // 重命名code为status,展开data下的字段到根节点 { "operation": "shift", "spec": { "code": "status", "data": { "*": "&" }, "id": "&" } }, // 将空数组FSequences转为空字符串 { "operation": "modify-overwrite-beta", "spec": { "FSequences": ["=isEmpty(@)", "", "@"] } }, // 将单元素数组token转为字符串值 { "operation": "modify-overwrite-beta", "spec": { "token": ["=join('',@)", "@"] } } ]
配置说明
- shift操作:完成
code到status的重命名,同时把data下所有字段提取到根节点,保留原有的id字段。 - 第一个modify-overwrite-beta操作:通过
=isEmpty(@)判断FSequences是否为空数组,满足条件则替换为空字符串,否则保留原内容。 - 第二个modify-overwrite-beta操作:用
=join('',@)将单元素数组拼接成字符串,数组内的数值会自动转换为字符串类型。
内容的提问来源于stack exchange,提问作者VamsiKumar_gudala
相关产品推荐
相关产品推荐

