Я использую Mule 3.8.1 и есть файл CSV, который посылает в магазин открытия разаКак сопоставить поля CSV в списке JSON?
Group Name,Group ID,Store ID,Store Name,Mon opening time,Tues opening time,Wed opening time,Thurs opening time,Fri opening time,Sat opening time,Sun opening time,Mon closing time,Tues closing time,Wed closing time,Thurs closing time,Fri closing time,Sat closing time,Sun closing time
DBLTD,DB1,STORE1,Main Store,9:00,9:00,9:00,9:00,9:00,9:00,9:00,20:00,20:00,20:00,20:00,20:00,20:00,20:00
DBLTD,DB1,STORE2,NYC Store,9:00,9:00,9:00,9:00,9:00,9:00,9:00,20:00,20:00,20:00,20:00,20:00,20:00,20:00
Мне нужно отобразить их в список JSON в следующем формате, используя Dataweave:
{
"groupId": "DB1",
"groupName": "DBLTD",
"storeId": "STORE1"
"storeName": "Main Store",
"openingTimes":
[
{
"day": "mon",
"openingTime": "9:00",
"closingTime": "20:00"
},
{
"day": "tues",
"openingTime": "9:00",
"closingTime": "20:00"
}
...etc
]
}
XML-поток Я использую, чтобы проверить эту работу:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd">
<flow name="testFlow">
<file:inbound-endpoint path="src\main\resources\input" moveToDirectory="src\main\resources\output" responseTimeout="10000" doc:name="File"/>
<dw:transform-message metadata:id="e77b30f7-f9a2-4b97-82a9-23c186dc03cb" doc:name="Transform Message">
<dw:input-payload mimeType="application/csv"/>
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
GroupID: payload."Group ID",
GroupName: payload."Group Name",
StoreId: payload."Store ID",
StoreName: payload."Store Name"
}]]></dw:set-payload>
</dw:transform-message>
</flow>
</mule>
кто-нибудь знает, как я могу это сделать?
Благодаря
0. создать объект с 'openingTimes' массива типа в качестве свойства. 1. прочитайте файл csv как два массива. 2. Пропустите один массив. Для каждого цикла задайте атрибут 'day' временного объекта для значения из первого массива и атрибут' time' того же объекта для значения из второго массива; затем добавьте временный объект к массиву openTimes. – Alic
Все это сделано в области передачи данных? Извините, мое первое предприятие в dataweave .. – user3165854
Извините, я не знаком с платформой Mule. Но вот как программист сделает это в коде. – Alic