DataWeave语言是一个功能强大的模板引擎,允许您将数据转换为任何格式(XML,CSV,JSON,Pojos,地图等)。
MuleSoft Dataweave JSON 到 XML,重新集成 writeAttributes=true 中的属性
我使用 writeAttributes=true 属性将 XML 片段转换为 JSON。 XML: 荷马 我使用 writeAttributes=true 属性将 XML 片段转换为 JSON。 XML: <family surname="Simpsons"> <father age="42">Homer</father> <mother age="41">Marge</mother> <children> <child age="9">Bart</child> <child age="8">Lisa</child> <child age="1">Maggie</child> </children> </family> 数据编织: %dw 2.0 output application/json writeAttributes=true, duplicateKeyAsArray=true --- payload 生成的 JSON: { "family": { "@surname": "Simpsons", "father": { "@age": "42", "__text": "Homer" }, "mother": { "@age": "41", "__text": "Marge" }, "children": { "child": [ { "@age": "9", "__text": "Bart" }, { "@age": "8", "__text": "Lisa" }, { "@age": "1", "__text": "Maggie" } ] } } } XML 属性和值通过使用修改后的键保留在 JSON 中:“@key”表示属性,“__text”表示值。 虽然使用 writeAttributes writer 属性从 XML 到 JSON 的操作非常简单,但似乎没有等效的方法可以执行相反的操作。 使用这种结果格式,我想将类似的 JSON 转换为原始 XML。 将 JSON 转换回 XML 并重新集成属性的最简单方法是什么? 编辑: 在上面生成的 JSON 负载上使用aled的变换here,我能够得到接近的结果,但子数组元素没有重新获取年龄属性。 aled 的 DataWeave: %dw 2.0 output application/xml fun getAttributes(x) = x match { case is Object -> x filterObject ($$ as String startsWith "@") mapObject ((value, key, index) -> (key[1 to -1] ): value) else -> $ } fun convertToAttributes(x) = x match { case is Object -> x filterObject !($$ as String startsWith "@") mapObject ($$) @((getAttributes($))): convertToAttributes($) case is Array -> x map convertToAttributes($) else -> $ } --- convertToAttributes(payload) 生成的 XML: <?xml version='1.0' encoding='UTF-8'?> <family surname="Simpsons"> <father age="42">Homer</father> <mother age="41">Marge</mother> <children> <child>Bart</child> <child>Lisa</child> <child>Maggie</child> </children> </family> __text 以某种方式成为变换过程中的值。 我不确定为什么它没有获取数组中的年龄。 试试这个: %dw 2.0 output application/xml --- { family @(surname: payload.family.'@surname'): { father @(age: payload.family.father.'@age'): payload.family.father.'__text', mother @(age: payload.family.mother.'@age'): payload.family.mother.'__text', children: { (payload.family.children.child map (child) -> { child @(age: child.'@age'): child.'__text' }) } } }
如何在Mule 4 Dataweave中对json数据进行排序
我需要对可以包含数组和对象的JSON数据进行排序 样本数据: { “结果”: [ { "empCode": "abcd", “年龄……
嗨,我得到了一些 UX 时间,例如,我可以使用以下方法在数据时间中转换该值: as DateTime {单位:“毫秒”} as String {格式:'yyyy-MM-dd hh:mm:ss:SSS'} { “测试”:...
在 Mule 中使用字符串操作函数 <logger element
我需要使用 Mule 将 String 变量值的一部分打印到 Mule 控制台 我需要使用 Mule 将 String 变量值的一部分打印到 Mule 控制台 语法:“” “” 错误:无法解析以下引用: 'substring' 。 1 : 1 英寸 我使用的是Mule 4.6版本。请注意,我不是在寻找 DW 脚本,我可以很好地通过 DW 脚本来完成它,但我的要求是使用 Mule 在 Mule 控制台上打印“ 谢谢。 Mule 4 中如何使用表达式似乎存在混乱。我猜测该变量是一个 String,它内部可能是一个 Java String。这并不意味着您可以直接在 Mule 4 表达式中执行实例方法。 Mule 4.x 表达语言实际上是 DataWeave 2.x。因此,每次使用语法 #[...] 编写表达式时,您都在编写 DataWeave 表达式。即使它是记录器或其他组件。 说到如何在DataWeave中提取String的子字符串,核心函数列表中没有substring()函数。您必须使用以下替代方案之一: 范围选择器允许选择数组或字符串的范围。示例:#[vars.topicDetails[2 to 5]],输出 "2345"。 使用 Mule 4.4.0 中添加的 Strings 模块中的 substring() 函数。如果您使用旧版本的 Mule,此功能将不可用。为了避免在简短表达式中使用 import,我们可以使用完整的模块名称来引用该函数。示例:#[dw::core::Strings::substring(topicDetails, 1, 5)],输出 "2345"。
我试着向你解释一下,我有一个对象数组: 输入: [ { "数量": "000001", "价格": 14.99, "数量": 18, "行": "3" }, { &...
我无法使用下面提到的 mule4 属性文件中的密码。 我正在尝试 ${db.password} ,数据库连接失败,但硬编码值工作正常。是因为
在 MuleSoft 中,将金额值转换为美元格式,例如 $3,567.00,但将金额值列表作为数字发送到 Excel 工作表,以便 Excel 可以使用 SUM() 函数计算总计 ...
需要通过保留其他所有内容(包括属性)来从 XML 中删除命名空间。我尝试使用替换和更新,但它似乎不起作用。下面是示例 XML,我需要在其中...
对数组进行排序是正确的,但对于嵌套数组,结果不正确。 我尝试使用一个简单的数组,输出已正确排序。 %dw 2.0 输出应用程序/json 从 dw::core::Ar 导入 indexOf...
我正在尝试将 UTC 时区中的字符串格式的日期转换为澳大利亚/悉尼时区。它似乎适用于一个值,但不适用于另一个值,所以我有点困惑 %dw 2.0 从 dw 导入*:...
在 mule 4 中将日期时间转换为 salesforce 所需的日期时间格式
对于日期时间“2022-11-29T19:12:21Z”,从 salesforce 获取 INVALID_TYPE_ON_FIELD_IN_RECORD 错误。因此需要将其转换为 Salesforce 接受的正确格式。 输入:“2022-11...
我有以下输入 JSON { "列表价格": "1245678.98" } 我需要将其格式化为以下格式 { “列表价格”:“1 245 678,99” } 目前我是
在循环中使用 Dataweave 根据 ID 查找 JSON 数组以获取其他字段
如何使用 dataweave 在另一个 json 中查找键的元素? 我必须有 2 个 JSON 数组;一个是常备查找数据,第二个是我动态创建的,我需要查找
如何在 Mule 4 中使用 DataWeave 将 ANSI 编码的 CSV 文件转换为 UTF-8 编码的文件
我有一个场景,我正在获取一个以 ANSI 编码并包含特殊字符的 CSV 文件。但是,当我读取文件并尝试对其进行转换时,特殊字符被
我想根据B列的情况更新输入csv文件的A列。我们如何在dataweave中实现这一点?
“身份证”、“姓名”、“工资”、“地点”、“日期” 123,"甘尼什",10000,"浦那","02/22/2020" 234、“桑克特”、20000、“孟买&
我想屏蔽json中的元素。应屏蔽以下 json 中的 descID 元素。可以请您推荐一下吗? { “状态”:“好的”, “状态代码”:“19x9s011”, "statusDescription": "S...
我想更新输入csv文件的A列基础B列的条件。我们如何在dataweave中实现这一点?
“身份证”、“姓名”、“工资”、“地点”、“日期” 123,"甘尼什",10000,"浦那","02/22/2020" 234、“桑克特”、20000、“孟买&
我在发送带有自定义主题和表达式的电子邮件时遇到错误: 并出现以下错误: 在编写 Java 时 3| {“DataGenerate”:(now()) as String { 格式:“...
我有巨大的嵌套 JSON,它正在作为 API 的 n 输入提供。输入 JSON 如下所示: [{ “ID”:“123456”, "帐号": "876545", ”
如何使用Dataweave将下面的json(可以有多个嵌套对象)转换为所需的输出?
输入: { “拖”: { “杂项”:{ “程序”:{ “ID”: { “类型”:“名称”,...