我在 Jolt 转换方面遇到问题,我需要从数组列表中提取值/字段,并从我要提取的数组或外部列表中添加一个自定义字段。但让我尝试通过代码更详细地解释一下。
这是我的输入(“数据”中只有2个字段集,本来我“数据”中有200多个字段集):
{
"result": {
"id": "123456789",
"year": 2023,
"version": "0.1",
"country": "UK",
"modified": "2023-11-09T00:00:00",
"data": [
{
"FieldNumber1": "CompanyNumber",
"FieldNumber2": "0.1",
"FieldNumber3": "123456789",
"FieldNumber4": false,
"FieldNumber5": false,
"FieldNumber6": 1,
"FieldNumber7": 0
},
{
"FieldNumber1": "CompanyName",
"FieldNumber2": "0.1",
"FieldNumber3": "FunctionsAndStrings",
"FieldNumber4": false,
"FieldNumber5": false,
"FieldNumber6": 1,
"FieldNumber7": 0
}
],
"description": null,
"downloadNumber": "aaaaa-bbbbb-11111-22-abcabc123"
},
"true": null,
"false": null
}
我期待的结果是这样的:
[ {
"id": "123456789",
"FieldNumber1" : "CompanyNumber",
"FieldNumber2" : "0.1",
"FieldNumber3" : "123456789",
"FieldNumber4" : false,
"FieldNumber5" : false,
"FieldNumber6" : 1,
"FieldNumber7" : 0
}, {
"id": "123456789",
"FieldNumber1" : "CompanyName",
"FieldNumber2" : "0.1",
"FieldNumber3" : "FunctionsAndStrings",
"FieldNumber4" : false,
"FieldNumber5" : false,
"FieldNumber6" : 1,
"FieldNumber7" : 0
} ]
或
[ {
"CompanyNumber": "123456789",
"FieldNumber1" : "CompanyNumber",
"FieldNumber2" : "0.1",
"FieldNumber3" : "123456789",
"FieldNumber4" : false,
"FieldNumber5" : false,
"FieldNumber6" : 1,
"FieldNumber7" : 0
}, {
"CompanyNumber": "123456789",
"FieldNumber1" : "CompanyName",
"FieldNumber2" : "0.1",
"FieldNumber3" : "FunctionsAndStrings",
"FieldNumber4" : false,
"FieldNumber5" : false,
"FieldNumber6" : 1,
"FieldNumber7" : 0
} ]
我只想在每个数据集之前有一个来自“数据”的列表,但具有来自“结果”的固定“id”。 此外,在第一个数据集中,“FieldNumber1”将始终为“CompanyNumber”,并且“FieldNumber3”中的值始终与“结果”中的“id”相同。也许从“FieldNumber3”计算它更容易。
除了使用这个简单的震动规范删除“结果”并仅提取“数据”列表之外,我没有采取进一步的行动:
[
{
"operation": "shift",
"spec": {
"result": {
"data": ""
}
}
}
]
我需要使用第一个属性“id”或“CompanyNumber”将每组数据存储在表中,以便我可以将其与其他表连接。
非常感谢!
您可以使用以下 Jolt 规格
[
{
"operation": "shift",
"spec": {
"result": {
"data": {
"*": {
"@(2,id)": "[#4].&1.id",
"*": "[#4].&1.&"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": "[]"
}
}
}
]