尝试构建JOLT规范以将名称相似的键放入数组中,并去除前6个字符。在下面的示例中,所有以“ fd1lk1”开头的密钥都将进入数组“ Link1”,以“ fd1lk2”开头的密钥将进入数组“ Link2”,依此类推。
感谢您的帮助!
源JSON:
{
"EventName": "WidgetFeedImpression",
"WidgetName": "_blah_2019.08.17",
"WidgetID": "5d56ef313db7c300018d9c66",
"WidgetVariationName": "_blah_2019.08.17",
"WidgetVariationID": "5b5f524eb1932300014d0928",
"WidgetTemplate": "blah-six-grid-wth-image",
"fd1lk1Title": "link 1 title",
"fd1lk1Image": "link 1 image",
"fd1lk1TargetURL": "link 1 url",
"fd1lk1Position": "1",
"fd1lk1Id": "fd5da8ce0f8701a3000190efbdlk1",
"fd1lk2Title": "link 2 title",
"fd1lk2Image": "link 2 image",
"fd1lk2TargetURL": "link 2 url",
"fd1lk2Position": "2",
"fd1lk2Id": "fd5da8ce0f8701a3000190efbdlk2",
"gtmcb": "1878625665",
"CreatedAtUtc": "2019-10-24T16:57:01.5274702Z"
}
所需的输出:
{
"EventName": "WidgetFeedImpression",
"WidgetName": "_blah_2019.08.17",
"WidgetID": "5d56ef313db7c300018d9c66",
"WidgetVariationName": "_blah_2019.08.17",
"WidgetVariationID": "5b5f524eb1932300014d0928",
"WidgetTemplate": "blah-six-grid-wth-image",
"Link1" : [ {
"Title" : "link 1 title",
"Image" : "link 1 image",
"TargetURL" : "link 1 url",
"Position" : "1",
"Id" : "fd5da8ce0f8701a3000190efbdlk1"
} ],
"Link2" : [ {
"Title" : "link 2 title",
"Image" : "link 2 image",
"TargetURL" : "link 2 url",
"Position" : "2",
"Id" : "fd5da8ce0f8701a3000190efbdlk2"
} ],
"gtmcb": "1878625665",
"CreatedAtUtc": "2019-10-24T16:57:01.5274702Z"
}
答案 0 :(得分:0)
提取*
中的fd1lk*Title
并与&(0,1)
一起使用:
[
{
"operation": "shift",
"spec": {
"fd1lk*Title": "Link&(0,1).[0].Title",
"fd1lk*Image": "Link&(0,1).[0].Image",
"fd1lk*TargetURL": "Link&(0,1).[0].TargetURL",
"fd1lk*Position": "Link&(0,1).[0].Position",
"fd1lk*Id": "Link&(0,1).[0].Id",
"*": {
"@": "&"
}
}
}
]
有关基本概念,请参见here。