Mule Dataweave 2-数组对象的JSON字符串列表

Mule Dataweave 2-数组对象的JSON字符串列表,mule,transformation,dataweave,arrayobject,Mule,Transformation,Dataweave,Arrayobject,我从一个外部API获得一个文本/纯文本体,包含以下内容。输出具有相同的格式,每行JSON 输出所需的对象数组: 如何循环每个字符串行并转换为对象数组 假设我必须首先将每一行转换为JSON。您可以使用dataweave的查找函数将每一行转换为JSON。将JSONstring作为输入传递给lookup函数并返回Json对象。下面的代码应该可以正常工作 主数据结构,它以文本/Prand作为输入,但将其视为没有任何标题的单列CSV。 <dw:transform-message doc:name="

我从一个外部API获得一个文本/纯文本体,包含以下内容。输出具有相同的格式,每行JSON

输出所需的对象数组:

如何循环每个字符串行并转换为对象数组


假设我必须首先将每一行转换为JSON。

您可以使用dataweave的查找函数将每一行转换为JSON。将JSONstring作为输入传递给lookup函数并返回Json对象。下面的代码应该可以正常工作

主数据结构,它以文本/Prand作为输入,但将其视为没有任何标题的单列CSV。

<dw:transform-message doc:name="Transform Message">
    <dw:input-payload mimeType="application/csv">
        <dw:reader-property name="header" value="false"/>
        <dw:reader-property name="separator" value="|"/>
    </dw:input-payload>
    <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload map lookup('getJsonData',$.column_0)]]>
    </dw:set-payload>
</dw:transform-message>
上面的脚本调用以下查找函数,该函数将输入作为JSON字符串,将输出作为JSSON对象

    <flow name="getJsonData">
        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload mimeType="application/json"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload]]></dw:set-payload>
        </dw:transform-message>
    </flow>  

希望这对您有所帮助。

您可以使用dataweave的lookup函数将每一行转换为JSON。将JSONstring作为输入传递给lookup函数并返回Json对象。下面的代码应该可以正常工作

主数据结构,它以文本/Prand作为输入,但将其视为没有任何标题的单列CSV。

<dw:transform-message doc:name="Transform Message">
    <dw:input-payload mimeType="application/csv">
        <dw:reader-property name="header" value="false"/>
        <dw:reader-property name="separator" value="|"/>
    </dw:input-payload>
    <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload map lookup('getJsonData',$.column_0)]]>
    </dw:set-payload>
</dw:transform-message>
上面的脚本调用以下查找函数,该函数将输入作为JSON字符串,将输出作为JSSON对象

    <flow name="getJsonData">
        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload mimeType="application/json"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload]]></dw:set-payload>
        </dw:transform-message>
    </flow>  

希望这有帮助。

您好,您的输入负载是json行类型的。有一个简单的方法来支持这一点

%dw 2.0
output application/json
---
payload splitBy  "\n" map ((jsonValue, index) -> read(jsonValue, "application/json"))

这将按行分割您的输入并读取每一行。

您好,您的输入负载是json行类型。有一个简单的方法来支持这一点

%dw 2.0
output application/json
---
payload splitBy  "\n" map ((jsonValue, index) -> read(jsonValue, "application/json"))
这将按行分割输入并读取每行