需要帮助在 DW 2.0 中构建 JSON 负载

问题描述 投票:0回答:1

我在对象存储中存储了以下键/值。例如,“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 是一个数组,尽管它只有一个值。

dataweave mulesoft mule4
1个回答
0
投票

试试这个

%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
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.