Mule Dataweave 2 - JSON 字符串列表到数组对象
Mule Dataweave 2 - List of JSON Strings to Array Object
我从外部 API 得到一个 text/plain
body 具有以下内容。 输出格式相同,每行 JSON。
{"update":"7.6"}
{"update":"3.2"}
{"update":"1.3"}
预期输出(Object Array
):
[{"version":"7.6"},{"version":"3.2"},{"version":"1.3"}]
如何循环每个字符串行并转换为对象数组?
假设我必须先将每一行转换为 JSON。
您可以使用 dataweave 中的查找函数将每一行转换为 JSON。将 JSON 字符串作为输入传递给查找函数和 return Json object。以下代码应该可以正常工作
主数据编织将 text/plain 作为输入,但将其视为没有任何 header.
的单列 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 object.
<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"))
这将按行拆分您的输入并读取每一行。
我从外部 API 得到一个 text/plain
body 具有以下内容。 输出格式相同,每行 JSON。
{"update":"7.6"}
{"update":"3.2"}
{"update":"1.3"}
预期输出(Object Array
):
[{"version":"7.6"},{"version":"3.2"},{"version":"1.3"}]
如何循环每个字符串行并转换为对象数组?
假设我必须先将每一行转换为 JSON。
您可以使用 dataweave 中的查找函数将每一行转换为 JSON。将 JSON 字符串作为输入传递给查找函数和 return Json object。以下代码应该可以正常工作
主数据编织将 text/plain 作为输入,但将其视为没有任何 header.
的单列 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 object.
<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"))
这将按行拆分您的输入并读取每一行。