将默认字段添加到 Jolt JSON 转换
Add default field to Jolt JSON transformation
我正在尝试使用 JOLT 进行 JSON 转换,我想我已经接近了,但我不能做的是为每个当前未出现的字段添加一个新字段.
我已经阅读了很多教程,下面的代码是我期望的。但是它似乎没有添加到新的 "Name" 字段中。
{
"totalElements": 168,
"columns": {
"dimension": {
"id": "variables/daterangehour",
"type": "time"
},
"columnIds": [
"1"
]
},
"rows": [
{
"itemId": "119050300",
"value": "00:00 2019-06-03",
"data": [
120
]
},
{
"itemId": "119050805",
"value": "05:00 2019-06-08",
"data": [
98
]
},
{
"itemId": "119050923",
"value": "23:00 2019-06-09",
"data": [
172
]
}
]
}
这是我的震撼:
[
{
"operation": "default",
"spec": {
"name": "chart1"
}
},
{
"operation": "shift",
"spec": {
"rows": {
"*": {
"value": "[&1].date",
"data": {
"*": "[&2].data"
}
}
}
}
}
]
这是输出:
[ {
"date" : "00:00 2019-06-03",
"data" : 120
}, {
"date" : "05:00 2019-06-08",
"data" : 98
}, {
"date" : "23:00 2019-06-09",
"data" : 172
} ]
虽然我希望它是这样的:
[ {
"name" : "graph1",
"date" : "00:00 2019-06-03",
"data" : 120
}, {
"name" : "graph1",
"date" : "05:00 2019-06-08",
"data" : 98
}, {
"name" : "graph1",
"date" : "23:00 2019-06-09",
"data" : 172
} ]
谁能告诉我哪里出错了?显然 default 用于添加新项目,但它似乎没有做任何事情。
你应该像这样放东西:"#chart1": "[&1].name"
Hash 放硬编码的值然后你不需要操作默认值。
或者,如果您想使用默认操作:
[
{
"operation": "shift",
"spec": {
"rows": {
"*": {
"value": "[&1].date",
"data": {
"*": "[&2].data"
}
}
}
}
},
{
"operation": "default",
"spec": {
"*": {
"name": "chart1"
}
}
}
]
我正在尝试使用 JOLT 进行 JSON 转换,我想我已经接近了,但我不能做的是为每个当前未出现的字段添加一个新字段.
我已经阅读了很多教程,下面的代码是我期望的。但是它似乎没有添加到新的 "Name" 字段中。
{
"totalElements": 168,
"columns": {
"dimension": {
"id": "variables/daterangehour",
"type": "time"
},
"columnIds": [
"1"
]
},
"rows": [
{
"itemId": "119050300",
"value": "00:00 2019-06-03",
"data": [
120
]
},
{
"itemId": "119050805",
"value": "05:00 2019-06-08",
"data": [
98
]
},
{
"itemId": "119050923",
"value": "23:00 2019-06-09",
"data": [
172
]
}
]
}
这是我的震撼:
[
{
"operation": "default",
"spec": {
"name": "chart1"
}
},
{
"operation": "shift",
"spec": {
"rows": {
"*": {
"value": "[&1].date",
"data": {
"*": "[&2].data"
}
}
}
}
}
]
这是输出:
[ {
"date" : "00:00 2019-06-03",
"data" : 120
}, {
"date" : "05:00 2019-06-08",
"data" : 98
}, {
"date" : "23:00 2019-06-09",
"data" : 172
} ]
虽然我希望它是这样的:
[ {
"name" : "graph1",
"date" : "00:00 2019-06-03",
"data" : 120
}, {
"name" : "graph1",
"date" : "05:00 2019-06-08",
"data" : 98
}, {
"name" : "graph1",
"date" : "23:00 2019-06-09",
"data" : 172
} ]
谁能告诉我哪里出错了?显然 default 用于添加新项目,但它似乎没有做任何事情。
你应该像这样放东西:"#chart1": "[&1].name"
Hash 放硬编码的值然后你不需要操作默认值。
或者,如果您想使用默认操作:
[
{
"operation": "shift",
"spec": {
"rows": {
"*": {
"value": "[&1].date",
"data": {
"*": "[&2].data"
}
}
}
}
},
{
"operation": "default",
"spec": {
"*": {
"name": "chart1"
}
}
}
]