【发布时间】:2022-01-21 00:04:19
【问题描述】:
是否有一种优化的方法可以从下面的数据数组字段值中修剪开始和结束的空格,已经使用了三种方法,但需要更优化的方法。
注意:数据数组中可能有超过 20 个对象,每个对象有超过 50 个字段。下面的有效载荷只是一个示例;字段值可以包含任意大小的数字、字符串或日期。
{
"School": "XYZ High school",
"data": [
{
"student Name": "XYZ ",
"dateofAdmission": "2021-06-09 ",
"percentage": "89 "
},
{
"student Name": "ABC ",
"dateofAdmission": "2021-08-04 ",
"percentage": "90 "
},
{
"student Name": "PQR ",
"dateofAdmission": "2021-10-01 ",
"percentage": "88 "
}
]
}
需要的输出:
{
"School": "XYZ High school",
"data": [
{
"student Name": "XYZ",
"dateofAdmission": "2021-06-09",
"percentage": "89"
},
{
"student Name": "ABC",
"dateofAdmission": "2021-08-04",
"percentage": "90"
},
{
"student Name": "PQR",
"dateofAdmission": "2021-10-01",
"percentage": "88"
}
]
}
我用过的三种方法:
第一种方法:
%dw 2.0
output application/json
//variable to remove beginning and end blank spaces from values in key:value pairs for data
var payload1 = payload.data map ((value , key ) ->
value mapObject ( ($$ )) : trim($))
---
//constructed the payload
payload - "data" ++ data: payload1 map ((item, index) -> {
(item)
})
第二种方法:
%dw 2.0
output application/json
---
payload - "data" ++ data: payload.data map ((value , key ) ->
value mapObject ( ($$ )) : trim($)) map ((item, index) -> {
(item)
})
第三种方法:
%dw 2.0
output application/json
---
{
"Name":payload.School,
"data": payload.data map ( $ mapObject (($$):trim($) ) )
}
【问题讨论】:
-
更优化的方式是什么意思?您的解决方案的真正问题是什么?
-
客户端说内存管理不正确,由于变量等原因
-
很抱歉,这不是很清楚。应该测试不同版本是否存在任何实际问题。否则只是审美意见。
标签: mule dataweave mulesoft mule4