簡體   English   中英

在 mule 中讀取文件並使用 dataweave 進行解析

[英]reading a file in mule and parsing with dataweave

我正在使用 Mule 4.4 並嘗試讀取一個文件,然后使用 Dataweave 將其轉換為 JSON。 這是文件(它沒有標題),文件的最后一行是空白

abc|Milk|3.9|
lmn|Butter|5.5|
xyz|Bread|1.6|

在讀取文件時將 mime 類型設置為 application/csv(盡管其 pipe 分隔),這會成為問題嗎?

我遇到的問題是,我想將文件內容轉換為 json,如下所示:

[
 {
   "id": "abc",
   "product": "Milk",
   "price": 3.9
 },
{
"id": "lmn",
   "product": "Butter",
   "price": 5.5
 },
etc

]

但是它顯示如下:(第一行重復)

[
 {
   "id": {
     "abc|Milk|3.9|": "lmn|Butter|5.5|"
    }
 },
{
"id": {
  "abc|Milk|3.9|": "xyz|Bread|1.6|"
}
}
]

我認為這種情況正在發生,因為 mule 假設第一行包含 header。這是我的數據編織:

%dw 2.0
output application/json

---

payload map (value,index)->
{
   id:value
}

它以這種方式顯示,因為您將其設置為將第一行視為您的 header 行。 您需要將讀取器的header值設置為 false,以便它了解第一行實際上不是 header。

除此之外,您還需要將分隔符設置為 pipe 字符。

例如,如果您將其作為文本讀入並僅使用 dataweave 對其進行處理,則它看起來像:

%dw 2.0
output application/json
---
read(payload, "applicatin/csv", {"header": false, "separator": "|" }) map (
    {
        id: $[0],
        product: $[1],
        price: $[2]
    }
)

在此處輸入圖像描述

請嘗試如下。

%dw 2.0
input payload application/csv separator="|", header = false
output application/json
---
payload map (value,index)->
{
    id:value[0],
    product: value[1],
    price: value[2]
}

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM