mule 4.4 community edition - 如何解析以流形式出现的文件数据

mule 4.4 community edition - how to parse file data which is coming as stream

我正在使用社区版 Mule 4.4(所以我的理解是 - 不能使用 Dataweave(转换) 现在由于 CE 不能使用 'Repetable file store stream'(这很好)(我在内存流中使用可重复的)

现在我的问题是在我读入文件后 - 如何解析内容? 数据全部显示为

org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamProvider

如果我可以使用 Dataweave,这就足够简单了:即

<ee:transform doc:name="Transform Message">
    <ee:message>
    <ee:set-payload>
             <![CDATA[%dw 2.0
                output application/json

                ---

                payload map (value,index)->
                {
                id:value.column_0
                }]]>
        </ee:set-payload>
    </ee:message>
</ee:transform>

但是如果不使用 Transform 组件(因为我使用的是 Community Edition Mule runtime 4.4),我们如何处理实际上是 'Stream' 数据的负载? 谢谢

请看上面的代码,我需要将文件内容(这是一个流)转换成JSON

edit1: 感谢@aled 更新了更多细节:下面是我试图读取制表符分隔文件的文件读取操作。不确定我应该设置什么 outputMimeType 所以将其设置为 'application/csv'

<file:read doc:name="Read Products file" config-ref="File_Config" outputMimeType='application/csv; header=false; separator=|' path="/employee_master/employees.unl" outputEncoding="utf-8">
        <repeatable-in-memory-stream />
    </file:read>

你想错了。首先,您正在查看 Mule 中的实现 class,而在 Mule 4 中您不应该查看它。当您尝试处理文件时,没有文件是真正的 'stream of data'。它是一个二进制文件吗?不,很明显,如果您使用 map() DataWeave 知道如何解析它。那么输入文件的数据格式是什么? JSON、CSV、XML 等?看起来已经设置了正确的格式,因此 DataWeave 能够解析输入。实际上,您的问题是您想要转换数据,但不能在社区版中使用转换组件。另外 UI.

中的编辑体验也不会很好

您在社区版中可以做的是使用带有表达式的 set-payload。由于表达式语言仍然是 DataWeave,因此它的工作方式完全相同。您将失去 Transform 的图形 UI。