我正在努力改造我的有效载荷.我有这种情况.
输入有效负载如下所示: -
{
"address": {
"city": "bab",
"company_name": "asdast",
"country_code": "sam",
"location": {
"city": null,
"state": null
}
}}
Run Code Online (Sandbox Code Playgroud)
我使用%output application/json skipNullOn = "everywhere"它返回我下面的JSON
{
"address": {
"city": "bab",
"company_name": "asdast",
"country_code": "sam",
"location": { }
}}
Run Code Online (Sandbox Code Playgroud)
但是如果位置对象中的所有字段都是空的,我不希望有空的位置对象.我期待这样的事情
{
"address": {
"city": "bab",
"company_name": "asdast",
"country_code": "sam"
}}
Run Code Online (Sandbox Code Playgroud) 我的输入请求 JSON 如下所示:
{
"phoneNumbers": [{
"phoneNumberType": "mobile",
"phoneNumber": "54112724555"
},
{
"phoneNumberType": "mobile",
"phoneNumber": "16298765432"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想像这样生成输出 Json:
{
"phoneNumbers": [{
"phoneNumberType": "mobile",
"phoneNumber": "54112724555",
"CountryCode": "ARG"
},
{
"phoneNumberType": "mobile",
"phoneNumber": "16298765432",
"CountryCode": "US"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我使用 csv 文件中给出的 callCode 和 CountryCode Mapping 从 PhoneNumber 派生 countryCode。
CALLING_CODE,COUNTRY_CODE
1,US
7,RU
54,AR
20,EG
32,BE
33,FR
505,NI
506,CR
1876,JM
1905,CA
1939,PR
262262,RE
262269,YT
.,.
.,.
Run Code Online (Sandbox Code Playgroud)
我使用 fileConnector 读取 CSV 文件并将其存储在 Vars.CallingCodeMapping 中。
我必须通过从匹配返回 countryCode 的电话号码中传递第一个字母然后传递前两个字母 ....firstsixLetter 如果没有匹配返回 …
请求 Json 如下所示:-
{
"eNumber": 8506493,
"details": [
{
"id":12345,
"name": xyz123
}
]
}
Run Code Online (Sandbox Code Playgroud)
作为要求的一部分,我需要检查“id”或“name”字段必须存在的“details”数组。如果存在“id”字段,则“name”是非强制性的。如果存在“name”字段,则“id”是非强制性的。如果不满足则抛出错误。
我尝试了几个选项,使用过滤细节数组并检查验证组件中过滤数组的大小。它似乎工作不顺利。如果有人有更好的解决方案。请在这里分享。
试图了解何时在Mule中使用Message Enricher?有人用真实用法解释会很棒.我已经通过了mule文档示例
示例 Json 请求
{ "firstName": "George", "lastName": "Stephen" }
示例 Json 响应
{ "id": "123", "firstName": "George", "lastName": "Stephen" }
我想将 id 值插入到响应 Json 中,而无需在 dataweave 中进行一对一映射(我已经有了使用 groovy 组件在 dataweave 和 2 中进行一对一映射的工作解决方案)。
我的原始 JSON 请求很大,而且有很多非强制性字段,这就是我尝试这种方式的原因。