Пример ввода JSON:
Код: Выделить всё
{
"email": "john.calvert@nm.com",
"first_name": "John",
"accepts_marketing": false,
"email_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_updated_at": null
}
}
Код: Выделить всё
{
"optin_newsletter": false,
"email": "john.calvert@nm.com",
"first_name": "John"
}
Код: Выделить всё
[
{
"operation": "shift",
"spec": {
"accepts_marketing": "optin_newsletter",
"email_marketing_consent": {
"state": {
"subscribed": {
"#true": "optin_newsletter"
},
"*": {
"#false": "optin_newsletter"
}
}
},
"email": "email",
"first_name": "first_name"
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"subscribed": "=toBoolean"
}
}
]
[*]Когда в ввод, вывод для optin_newsletter становится массивом: [ false, "false" ], но я хочу, чтобы это было простое значение false.
[*]Когда во входных данных присутствует только одно из полей (accepts_marketing или email_marketing_consent), я хочу, чтобы выходные данные отражали только это значение без дублирования или ошибок.
< /ol>
Вопросы:
1. Как мне обработать случай, когда и Accept_marketing, и email_marketing_consent присутствуют, и мне нужно только одно логическое значение для optin_newsletter (а не массив значений)?
2. Если присутствует только Accepts_marketing или только email_marketing_consent, как я могу гарантировать, что преобразование дает правильное значение для optin_newsletter?
3. Как я могу изменить свою спецификацию JOLT, чтобы условно использовать одно из этих полей или установить приоритет одного из них над другим, если оба доступны?
Дополнительные сведения:
Цель состоит в том, чтобы поле optin_newsletter всегда было логическое значение (истина или ложь), даже если присутствуют оба поля (accepts_marketing и email_marketing_consent).
Я пытаюсь преобразовать значения email_marketing_consent.state, такие как «subscribed» и «not_subscribed». на логические значения (истина и ложь соответственно) для обеспечения единообразия.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ccepts-mar
Мобильная версия