我在对象存储中存储了以下键/值。例如,“Employee_Number”是键,下面是与该键关联的值/对象。
{
employeeMetaColumn = Employee_Number,
employeeMetaText = Employee Number,
employeeMetaType = SECT,
employeeMetaId = 18
}
同样,我有许多这样的键和值对,如下面的有效负载所示(当我执行“检索所有对象存储”操作时,我得到下面的有效负载#1)。我们可以看到它不是 JSON。
**
来自对象存储的有效负载#1。
**
{
Employee_Number = {
employeeMetaColumn = Employee_Number,
employeeMetaText = Employee Number,
employeeMetaType = SECT,
employeeMetaId = 18
}, Country_of_Birth = {
employeeMetaColumn = Country_of_Birth,
employeeMetaText = Country of Birth,
employeeMetaType = SLD,
employeeMetaId = 19
}
}
我有下面的有效负载 # 2,我需要使用它来构建最终的有效负载 # 3。这里 Employee_Number 映射到对象 Store 中的键(例如上面有效负载中所示的“Employee_Number”)。所以我想用这个键从对象 Store 中获取值。
**
有效负载#2
**
{
"employee": [
{
"Employee_Number": "123456",
"Country_of_Birth": "USA",
}
]
}
现在我需要构建以下有效负载#3
**
有效负载#3
**
{
"parameters": [{
"employeeParamValue": [
"123456"
],
"employeeMetaColumn": "Employee_Number",
"employeeMetaText": "Employee Number",
"employeeMetaType": "SECT",
"employeeMetaId": 18,
},
{
"employeeParamValue": [
"USA"
],
"employeeMetaColumn": "Country_of_Birth",
"employeeMetaText": "Country of Birth",
"employeeMetaType": "SLD"
"employeeMetaId": 19,
}
]
}
注意:employeeParamValue 是一个数组,尽管它只有一个值。
试试这个
%dw 2.0
var lookup = {
"Employee_Number": {
"employeeMetaColumn": "Employee_Number",
"employeeMetaText": "Employee Number",
"employeeMetaType": "SECT",
"employeeMetaId": 18
},
"Country_of_Birth": {
"employeeMetaColumn": "Country_of_Birth",
"employeeMetaText": "Country of Birth",
"employeeMetaType": "SLD",
"employeeMetaId": 19
}
}
var in = {
"employee": [
{
"Employee_Number": "123456",
"Country_of_Birth": "USA",
}
]
}
output application/json
---
parameters: in.employee[0]
pluck ((value, key, index) ->
{
"employeeParamValue":[value], (lookup[key])
}
)
输出
{
"parameters": [
{
"employeeParamValue": [
"123456"
],
"employeeMetaColumn": "Employee_Number",
"employeeMetaText": "Employee Number",
"employeeMetaType": "SECT",
"employeeMetaId": 18
},
{
"employeeParamValue": [
"USA"
],
"employeeMetaColumn": "Country_of_Birth",
"employeeMetaText": "Country of Birth",
"employeeMetaType": "SLD",
"employeeMetaId": 19
}
]
}