如何解决使用自定义列表对Dataweave进行排序
我需要根据定义的列表对数据进行排序,而不是按字母顺序和数字顺序。 排序顺序在变量“ sortOrder”中
%dw 2.0
output application/json
var sortOrder = [ "Brad","Alex","Dan","Chad"]
var myPayload = [
{
"Name": "Dan","Id": "3"
},{
"Name": "Brad","Id": "4"
},{
"Name": "Alex","Id": "2"
}
{
"Name": "Chad","Id": "1"
}
{
"Name": "Dan","Id": "5"
}
]
---
myPayload
输出必须是这样。
[
{
"Name": "Brad","Id": "4"
},{
"Name": "Alex","Id": "2"
},{
"Name": "Dan","Id": "3"
},"Id": "5"
},{
"Name": "Chad","Id": "1"
}
]
Dan有2个条目,在这种情况下,排序应基于“ Id”
解决方法
您可以使用Name来按sortOrder元素的索引进行排序。
%dw 2.0
import * from dw::core::Arrays
output application/json
var sortOrder = [ "Brad","Alex","Dan","Chad"]
var myPayload = [
{
"Name": "Dan","Id": "3"
},{
"Name": "Brad","Id": "4"
},{
"Name": "Alex","Id": "2"
},{
"Name": "Chad","Id": "1"
},{
"Name": "Dan","Id": "5"
}
]
---
myPayload orderBy( indexOf(sortOrder,$.Name) )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。