Dataweave - селектор, который использует другой ключ как часть keyName - PullRequest
1 голос
/ 26 мая 2020

У меня есть message.payload, например:

...
    "data": {
        "itemType": 177,
        "fields": {
           "initial_conditions$177": "<p>Sample data</p>",
            "input_signals$177": "<p>Sample data</p>",
            "intermediate_signals$177": "<p>Sample data</p>",
            "output_signals$177": "<p>Sample data</p>",
            "hil_input_signals$177": "<p>Sample data</p>",
...

, а $177 - еще одно поле в полезной нагрузке (data.itemtype), но я не могу понять, как это построить:

{
    "customfield_12507": message.payload.data.hil_use_case$177,
    "customfield_12508": message.payload.data.initial_conditions$177,
    "customfield_12509": message.payload.data.input_signals$177,
    "customfield_12510": message.payload.data.intermediate_signals$177,
    "customfield_12511": message.payload.data.output_signals$177,
    "customfield_12512": message.payload.data.hil_input_signal$177s,
}

Любые указатели приветствуются!

1 Ответ

0 голосов
/ 26 мая 2020

Я не уверен, что я следую, и, возможно, потребуется полная полезная нагрузка и образец вывода, но это то, что вы пытаетесь сделать?

Ввод:

{
    "data": {
        "itemType": 177,
        "fields": {
        "initial_conditions$177": "<p>Sample data - changed to make more obvious</p>",
            "input_signals$177": "<p>Sample data</p>",
            "intermediate_signals$177": "<p>Sample data</p>",
            "output_signals$177": "<p>Sample data</p>",
            "hil_input_signals$177": "<p>Sample data</p>"
        }
    }
}

Data-weave (сделал только одно поле)

%dw 2.0
output application/json
---
{
    "customfield_12508": payload.data.fields["initial_conditions\$$(payload.data.itemType)"]
}

Который выводит

{
  "customfield_12508": "<p>Sample data - changed to make more obvious</p>"
}
...