Я ищу помощь Джолту. Я официально новичок, пытающийся понять, подойдет ли Jolt для использования в нашем решении. Я не могу получить следующий вывод, как я ожидал.
Мне было интересно, может ли кто-нибудь помочь мне, и посмотреть, сможет ли этот шаблон помочь в других наших потребностях в структурах того же типа. Кроме того, если у кого-то есть лучшее / лучшее чтение, которое они предлагают на Джолте, я также рад услышать об этом.
В двух словах, я пытаюсь использовать JOLT для обработки следующих потребностей:
- Из входных данных JSON, если имеется несколько повторений структуры, выведите эти повторения в виде массива независимых структур json.
- Из родительского уровня возьмите именованное совпадение SetIDAL1 и поместите в верхнюю созданную структуру json, но не как часть массива, а как его собственный элемент.
Вот пример моего ввода, который мне нужно преобразовать:
"AL1": {
"0": {
"AllergenCodeMnemonicDescription": {
"1": {
"Text": "ASPIRIN",
"ID": "TEST1"
},
"2": {
"Text": "TYLENOL",
"ID": "TEST2"
}
},
"SetIDAL1": "1"
},
"1": {
"AllergenCodeMnemonicDescription": {
"1": {
"Text": "ADVIL"
}
},
"SetIDAL1": "2"
}
}
}
Моя текущая спецификация, которую я использую, похоже, очень близко подходит к мне. Однако я не могу поднять массивы на уровень выше, чтобы удалить 0: 1, и не могу зафиксировать тот факт, что я хочу, чтобы значение SetIDAL1 было помещено во вновь созданный объект массива, вместо этого он создает свой собственный объект массива. Я играл с различными другими вариантами, которые только уводят меня еще дальше. Буду признателен за любую помощь в решении и ввод / руководство, общие "умные способы" взглянуть на эту проблему.
К сожалению, у меня нет копии предыдущей работы, которую я пробовал, которая выполняла бы сопоставление для всех групп и отображала их, как ожидалось. Я начал двигаться к сопоставлению каждого отдельного объекта 0/1 под моим вводом, пытаясь понять, смогу ли я правильно «похоронить» SetIDAL, но безрезультатно. Я действительно не хочу кодировать для каждого уровня, но надеюсь, что есть решение для "под рукой" проблемы, с которой кто-то может мне помочь.
[
{
"operation": "shift",
"spec": {
"AL1": {
"0": {
"AllergenCodeMnemonicDescription": {
"@": "AL1.[].AllergenCodeMnemonicDescription.[]"
},
"SetIDAL1": "AL1.[].SetIDAL1"
},
"1": {
"AllergenCodeMnemonicDescription": {
"*": "AL1.[].AllergenCodeMnemonicDescription.[]"
},
"SetIDAL1": "AL1.[].SetIDAL1"
}
}
}
}
]
вот вывод, который я получаю. Я предполагаю, что потенциально мне нужен еще один сдвиг после этого, чтобы каким-то образом довести уровни «1» / «2» до «ВВЕРХ» снова. Но я не могу получить SetIDAL1 в правильном месте, как указано ранее.
{
"AL1" : [ {
"AllergenCodeMnemonicDescription" : [ {
"1" : {
"Text" : "ASPIRIN",
"ID" : "TEST1"
},
"2" : {
"Text" : "TYLENOL",
"ID" : "TEST2"
}
} ]
}, {
"SetIDAL1" : "1"
}, {
"AllergenCodeMnemonicDescription" : [ {
"Text" : "ADVIL"
} ]
}, {
"SetIDAL1" : "2"
} ]
}
Вот вывод, который мне нужен:
{
"AL1": [
{
"AllergenCodeMnemonicDescription": [
{
"Text": "ASPIRIN",
"ID": "TEST1"
},
{
"Text": "TYLENOL",
"ID": "TEST2"
}
],
"SetIDAL1": "1"
},
{
"AllergenCodeMnemonicDescription": [
{
"Text": "ADVIL"
}
],
"SetIDAL1": "2"
}
]
}