Я ввел json

[
  {"nm":"BRANCHID", "vl":"1"},
  {"nm":"TELLERID","vl":"9903"  },
  {"nm":"mobile","vl":"9903234565"  } 
]

Мне нужно проверить nm равным BRANCHID или TELLERID, затем установить значение V1 соответствующим образом и вывести:

{"BRANCHID":"1"},
{"TELLERID",:"9903"  }
-1
ashish maurya 29 Дек 2019 в 04:14

2 ответа

Отфильтруйте по нужным вам элементам, а затем создайте новый объект, комбинируя атрибуты nm и vl:

%dw 2.0
output application/json
---
payload 
   filter ((item) -> item.nm == 'BRANCHID' or item.nm == "TELLERID") 
   map ((item) -> {(item.nm) : item.vl})
2
afelisatti 30 Дек 2019 в 15:09

Отсортируйте данные в новый объект. Возможно, есть более изощренный способ сделать это, но он должен работать.

let newObj = {};
json.forEach(sort);

function sort(item, index){
    newObj[ json[index].nm ] = json[index].vl;
}

https://jsfiddle.net/r75haec8/

0
thingEvery 29 Дек 2019 в 07:32