dataweave 从数组元素中获取第一个字符
dataweave fetch first char from array elements
我正在尝试查看是否有 Types.Flag 以 'X' 开头,如果为真,我需要将 'subscribed' 设置为真。
输入:
{
"Subscribers": [{
"PhoneNumber": "9876543210",
"Types": [{
"Name": "abcd",
"Flag": "WIR"
},
{
"FilterName": "efg",
"Flag": "XNJ"
},
{
"FilterName": "hijk",
"Flag": "YIR"
}
]
},
{
"PhoneNumber": "9823456789",
"Types": [{
"FilterName": "lmn",
"Flag": "MST"
}]
}
]
}
预期输出
{
"subscriberList": [
{
"phoneNumber": "2012020004",
"subscribed": true
},
{
"phoneNumber": "2234567890",
"subscribed": false
}
]
}
您能否建议如何实现这一目标?
试试这个:
%dw 2.0
output application/json
import some from dw::core::Arrays
var data = {
"Subscribers": [{
"PhoneNumber": "9876543210",
"Types": [{
"Name": "abcd",
"Flag": "WIR"
},
{
"FilterName": "efg",
"Flag": "XNJ"
},
{
"FilterName": "hijk",
"Flag": "YIR"
}
]
},
{
"PhoneNumber": "9823456789",
"Types": [{
"FilterName": "lmn",
"Flag": "MST"
}]
}
]
}
---
subscriberList: data.Subscribers map {
phoneNumber: $.PhoneNumber,
subscribed: $.Types.*Flag some (e) -> e startsWith "X"
}
这是我使用的函数的文档:
我正在尝试查看是否有 Types.Flag 以 'X' 开头,如果为真,我需要将 'subscribed' 设置为真。
输入:
{
"Subscribers": [{
"PhoneNumber": "9876543210",
"Types": [{
"Name": "abcd",
"Flag": "WIR"
},
{
"FilterName": "efg",
"Flag": "XNJ"
},
{
"FilterName": "hijk",
"Flag": "YIR"
}
]
},
{
"PhoneNumber": "9823456789",
"Types": [{
"FilterName": "lmn",
"Flag": "MST"
}]
}
]
}
预期输出
{
"subscriberList": [
{
"phoneNumber": "2012020004",
"subscribed": true
},
{
"phoneNumber": "2234567890",
"subscribed": false
}
]
}
您能否建议如何实现这一目标?
试试这个:
%dw 2.0
output application/json
import some from dw::core::Arrays
var data = {
"Subscribers": [{
"PhoneNumber": "9876543210",
"Types": [{
"Name": "abcd",
"Flag": "WIR"
},
{
"FilterName": "efg",
"Flag": "XNJ"
},
{
"FilterName": "hijk",
"Flag": "YIR"
}
]
},
{
"PhoneNumber": "9823456789",
"Types": [{
"FilterName": "lmn",
"Flag": "MST"
}]
}
]
}
---
subscriberList: data.Subscribers map {
phoneNumber: $.PhoneNumber,
subscribed: $.Types.*Flag some (e) -> e startsWith "X"
}
这是我使用的函数的文档: