以下代码来自mule3.x java文件。
if (requestJson.has("addresses") && requestJson.getJSONObject("addresses").has("shipTo"))
requestJson.getJSONObject("addresses").remove("shipTo");
if (requestJson.has("lines") && requestJson.getJSONArray("lines").length() > 0) {
for (int i = 0; i < requestJson.getJSONArray("lines").length(); i++) {
requestJson.getJSONArray("lines").getJSONObject(i).put("taxIncluded", "true");
现在,我正试图将它迁移到mule4.x转换消息组件。有人能建议如何在mule4转换消息组件中使用if和for循环来编写这段代码吗。
提前感谢!
假设输入数据是存储在有效负载中的JSON,则第一个片段可以替换为:
payload.address - "shipTo"
DataWeave是一种函数式语言,。它不是一个for循环。相反,您可以映射列表中的每个元素:
payload.lines map $ ++ {taxIncluded: "true"}
如果您想在负载中保留其他字段,则可能需要对最后一个字段使用update运算符:https://blogs.mulesoft.com/news/anypoint-platform/update-fields-with-dataweave/
请注意,您的Java实现不会与DataWeave交互。