Попытка создать спецификацию 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"
}
1 ответ
*
в 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",
"*": {
"@": "&"
}
}
}
]
Подробнее об основных принципах см. здесь.
Похожие вопросы
Новые вопросы
json
JSON (нотация объектов JavaScript) — это сериализуемый формат обмена данными, который может быть прочитан машиной и человеком. Не используйте этот тег для собственных объектов JavaScript или литералов объектов JavaScript. Прежде чем задать вопрос, подтвердите свой JSON с помощью валидатора JSON, такого как JSONLint (https://jsonlint.com).