多对一 JSON 到 JSON 转换
Many to one JSON to JSON transformation
我需要将一组传入的 json 转换为输出中的通用结构,如下所示。传入的jsons结构如下
输入JSON1
{
"JR_ID": "1",
"JR_Data": "some text"
}
输入JSON2
{
"TA_ID": "1",
"TA_Data": "some text"
}
输入JSON3
{
"IM_ID": "1",
"IM_Data": "some text"
}
..还有更多
输出JSON结构如下
输出结构
{
"OBJECT_ID": "1",
"OBJECT_Data": "some text"
}
输入 json 一次一个,任务是动态映射传入 JSON 的 ID 字段到输出 JSON 的 OBJECT_ID 和数据相同场.
我如何为此使用 mule 表达式语言或数据编织?还有其他解决方案吗?
非常感谢任何帮助。
您可以使用以下数据编织语法动态映射 JSON 输入:
%dw 1.0
%output application/json
---
{
OBJECT_ID : payload[0],
OBJECT_Data : payload[1]
}
鉴于您的输入似乎通过 *_ID
或 *_Data
映射到您的输出,此脚本应该可以帮助您:
%dw 1.0
%output application/json
---
payload pluck ($$ as :string) reduce ((key, out={}) ->
key match {
k when key contains "ID" -> out ++ {"OBJECT_ID": payload[k]},
k when key contains "Data" -> out ++ {"OBJECT_Data": payload[k]},
default -> out
}
)
这是首先获取输入对象中所有键的列表 -- payload pluck ($$ as :string)
。 cast as :string
是为了让我们稍后可以测试键是否包含某个子字符串。然后我们使用 reduce
来构建您要查找的输出对象,方法是在输入键包含 "ID"
时向输出对象添加 OBJECT_ID
key:value 对并添加一个OBJECT_Data
key:value 当键包含 "Data"
.
时对输出对象
我需要将一组传入的 json 转换为输出中的通用结构,如下所示。传入的jsons结构如下
输入JSON1 { "JR_ID": "1", "JR_Data": "some text" }
输入JSON2 { "TA_ID": "1", "TA_Data": "some text" }
输入JSON3
{ "IM_ID": "1", "IM_Data": "some text" }
..还有更多
输出JSON结构如下
输出结构
{ "OBJECT_ID": "1", "OBJECT_Data": "some text" }
输入 json 一次一个,任务是动态映射传入 JSON 的 ID 字段到输出 JSON 的 OBJECT_ID 和数据相同场.
我如何为此使用 mule 表达式语言或数据编织?还有其他解决方案吗?
非常感谢任何帮助。
您可以使用以下数据编织语法动态映射 JSON 输入:
%dw 1.0
%output application/json
---
{
OBJECT_ID : payload[0],
OBJECT_Data : payload[1]
}
鉴于您的输入似乎通过 *_ID
或 *_Data
映射到您的输出,此脚本应该可以帮助您:
%dw 1.0
%output application/json
---
payload pluck ($$ as :string) reduce ((key, out={}) ->
key match {
k when key contains "ID" -> out ++ {"OBJECT_ID": payload[k]},
k when key contains "Data" -> out ++ {"OBJECT_Data": payload[k]},
default -> out
}
)
这是首先获取输入对象中所有键的列表 -- payload pluck ($$ as :string)
。 cast as :string
是为了让我们稍后可以测试键是否包含某个子字符串。然后我们使用 reduce
来构建您要查找的输出对象,方法是在输入键包含 "ID"
时向输出对象添加 OBJECT_ID
key:value 对并添加一个OBJECT_Data
key:value 当键包含 "Data"
.