改变JSON数组的结构
目的
把JSON数组转换成JSON对象输出。
示例说明
把user数组转换成一个user对象。
输入数据:
{
"name": "数聚蜂巢",
"url": "https://www.orchsym.com",
"published_date": "2018/05/25",
"user": [
{
"description": "created_time",
"value": "2018/12/25 14:30:05"
},
{
"description": "updated_time",
"value": "2019/01/11 11:10:25"
},
{
"description": "delete_time",
"value": "2019/07/11 17:30:00"
}
]
}
期望输出数据:
{
"name": "数聚蜂巢",
"url": "https://www.orchsym.com",
"published_date": "2018/05/25",
"user": {
"created_time": "2018/12/25 14:30:05",
"updated_time": "2019/01/11 11:10:25",
"delete_time": "2019/07/11 17:30:00"
}
}
流程编排

流程说明
测试数据由组件
GenerateFlowFile生成,且通过配置自定义文本参数的内容与上面输入数据相同的JSON数据。注意:切记将该组件
调度下的运行安排设置大些,否则将瞬间生成大量测试数据;两个GenerateFlowFile组件设置是一样的。

- 方式1:通过设置组件
JoltTransformJSON的DSL为移位来进行JSON数组结构的转换。
Jolt规则
{
"*":"&",
"user":{
"*":{
"value":"user.@(1,description)"
}
}
}

- 方式2:通过设置组件
JoltTransformJSON的DSL为链式规则来完成JSON数组到对象的转换。
Jolt规则
[
{
"operation":"shift",
"spec":{
"*":"&",
"user":{
"*":{
"value":"user.@(1,description)"
}
}
}
}
]

输出结果

输出结果与期望值一致。
流程模板
参见附件(请右键另存保存):JSON数组转换模板