dataweave 从数组元素中获取第一个字符

学徒

我想看看是否有任何 Types.Flag 以 'X' 开头,如果为 true,我需要将 'subscribed' 设置为 true。

输入:

{
    "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"
}

这是我使用的函数的文档:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章