改变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数组转换模板