如何使用正则表达式更新有效负载字段
How do I update a payload field using a regular expression
我需要从 phone 数字字段中删除所有非数字。由于传入数据可以采用任何模式,因此我使用正则表达式:/\D/。由于我使用的是 4.2.2 版并且更新操作符不可用,所以我使用更新语句。传入的有效载荷是
{
"Recipient": {
"Name": "Bob Newhart",
"MailingAddress": {
"Line1": "123 Main Street",
"Line2": "Apt 5",
"City": "Cumming",
"State": "GA",
"ZipCode": "30009",
"ZipCodePlus4": "3382"
},
"PhoneNumber": "(999) 555-1234",
"Company": "Disney"
}
}
我的第一次尝试是
%dw 2.0
output application/json
---
(payload.Recipient.PhoneNumber replace /\D/ with(""))
但这并不是 return 整个有效载荷。
正在使用更新:
%dw 2.0
import * from dw::util::Values
output application/json
---
payload update ["Recipient", "PhoneNumber"] with (payload.Recipient.PhoneNumber replace /[^\d]/ with "")
所以您已经有了生成所需值所需的代码,现在您只需要使用更新函数 (https://docs.mulesoft.com/mule-runtime/4.3/dw-values-functions-update) 来替换该字段,这样您就可以获得整个负载,并更新了值。
或者,如果您在没有更新的情况下执行此操作,您可以像他这样重建对象:
%dw 2.0
output application/json
---
{
"Recipient": {
(payload.Recipient - "PhoneNumber"),
"PhoneNumber": payload.Recipient.PhoneNumber replace /[^\d]/ with ""
}
}
我们从收件人对象中删除电话号码键,同时将该对象扩展到我们新的收件人对象中,从而允许我们创建一个新的电话号码键。
我需要从 phone 数字字段中删除所有非数字。由于传入数据可以采用任何模式,因此我使用正则表达式:/\D/。由于我使用的是 4.2.2 版并且更新操作符不可用,所以我使用更新语句。传入的有效载荷是
{
"Recipient": {
"Name": "Bob Newhart",
"MailingAddress": {
"Line1": "123 Main Street",
"Line2": "Apt 5",
"City": "Cumming",
"State": "GA",
"ZipCode": "30009",
"ZipCodePlus4": "3382"
},
"PhoneNumber": "(999) 555-1234",
"Company": "Disney"
}
}
我的第一次尝试是
%dw 2.0
output application/json
---
(payload.Recipient.PhoneNumber replace /\D/ with(""))
但这并不是 return 整个有效载荷。
正在使用更新:
%dw 2.0
import * from dw::util::Values
output application/json
---
payload update ["Recipient", "PhoneNumber"] with (payload.Recipient.PhoneNumber replace /[^\d]/ with "")
所以您已经有了生成所需值所需的代码,现在您只需要使用更新函数 (https://docs.mulesoft.com/mule-runtime/4.3/dw-values-functions-update) 来替换该字段,这样您就可以获得整个负载,并更新了值。
或者,如果您在没有更新的情况下执行此操作,您可以像他这样重建对象:
%dw 2.0
output application/json
---
{
"Recipient": {
(payload.Recipient - "PhoneNumber"),
"PhoneNumber": payload.Recipient.PhoneNumber replace /[^\d]/ with ""
}
}
我们从收件人对象中删除电话号码键,同时将该对象扩展到我们新的收件人对象中,从而允许我们创建一个新的电话号码键。