#json #jolt
#json #jolt
Вопрос:
Я пытаюсь использовать JOLT transform, но это действительно беспорядок, как я могу преобразовать этот ipnut в этот вывод, используя JSON Transform? Я не понимаю синтаксиса JOLT. Когда я пытаюсь ввести подстроку «клиент», это работает, но когда я делаю то же самое с «датой», это не работает….
ВВОД
{
"client": "18f085b6-eca2-4f20-a5da-910b9043c8b3",
"name": "clientName",
"dateControl": {
"date": "2020-07-16T14:08:53.708671 00:00"
}
}
ВЫВОД
{
"client": "18f085b6-eca2-4f20-a5da-910b9043c8b3",
"name": "clientName",
"dateControl": {
"date": "20200716"
}
}
Комментарии:
1. Вы должны показать свой файл спецификации
Ответ №1:
Вы можете попробовать нижеприведенную спецификацию Jolt.
ВВОД
{
"dateTime": "2020-07-16T14:08:53.708671 00:00"
}
Спецификация Jolt
[
{
"operation": "modify-overwrite-beta",
"spec": {
"dateTime": "=substring(@(1,dateTime),0,10)"
}
}
]
Вывод
{
"dateTime" : "2020-07-16"
}
Ответ №2:
Вы можете постепенно применять функции substring
для извлечения первых десяти символов, чтобы получить только часть даты, затем split
с помощью тире, чтобы join
вернуться, чтобы избавиться от них вместе со спецификацией modify-overwrite-beta, а затем удалить вспомогательные пары ключ-значение с помощью спецификации remove. такие , как
Ввод:
{
"client": "18f085b6-eca2-4f20-a5da-910b9043c8b3",
"name": "clientName",
"dateControl": {
"date": "2020-07-16T14:08:53.708671 00:00"
}
}
Спецификация толчка:
[
{
"operation": "modify-overwrite-beta",
"spec": {
"dateControl": {
"date1": "=substring(@(1,date),0,10)",
"date2": "=split('-',@(1,date1))",
"date": "=join('',@(1,date2))"
}
}
},
{
"operation": "remove",
"spec": {
"dateControl": {
"date1": "",
"date2": ""
}
}
}
]
Результат:
{
"client" : "18f085b6-eca2-4f20-a5da-910b9043c8b3",
"name" : "clientName",
"dateControl" : {
"date" : "20200716"
}
}