2016-01-05 1 views
1

у меня есть это в качестве входных данных: "keys":[{"key":"key1","value":"testKey1"},{"key":"Key2","value":"testKey2"}]DataWeave Transformer помощь в кодировании

То, что я пытаюсь сделать это, чтобы получить этот вывод в формате JSON:

{ "key1": "testKey1", 
    "key2":testKey2} 

Я пытаюсь с трансформатором DataWeave в мул:

%dw 1.0 
%output application/json skipNullOn="everywhere" 
--- 
{ 
price: payload.price, 
"": payload.keys filter $.value !=null 
} 

, но он показывает это:

"": [ 
{ 
    "value": "key1", 
    "key": "testKey1" 
}, 
{ 
    "value": "key2", 
    "key": "testKey12" 
} 
] 

Любые идеи?

+0

Вы можете поделиться полный ввод, так как ваш dataweave содержит payload.price но фрагмент кода не содержит цену –

+0

КАЖЕТСЯ ввод и вывод же. Можете ли вы объяснить, чего вы хотите достичь? –

ответ

0

Я использовал следующее сообщение фрагмент

{ 
     "keys": 
     [ 
      { 
       "key":"key1", 
       "value":"testKey1"}, 
      { 
       "key":"Key2" 
      } 
     ] 
    } 

Я трансформировали с использованием ниже Dataweave

%dw 1.0 
%output application/json skipNullOn="everywhere" 
--- 
{ 
    keys: payload.keys map { 
     key: $.key, 
     value: $.value 
    } 
} 

Отклик, как показано ниже. Когда значения не доступна, то значение не отображается в ответе

{ 
     "keys": [ 
     { 
      "key": "key1", 
      "value": "testKey1" 
     }, 
     { 
      "key": "Key2" 
     } 
     ] 
    } 
0

Это должно работать:

Вход:

{ 
    "keys":[ 
    { 
    "key":"key1", 
    "value":"value1" 
    }, 
    { 
    "key":"key2", 
    "value":null 
    }, 
    { 
    "key":"key3", 
    "value":"value3" 
    } 
    ] 
} 

Dw сценарий:

%dw 1.0 
%input payload application/json 
%output application/json 
--- 
{ 
    (payload.keys filter $.value !=null map { 
    ($.key): $.value 
    }) 
} 

Выход:

{ 
    "key1": "value1", 
    "key3": "value3" 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^