使用列表中的列表进行 Jolt 变换 Json
Jolt transform Json with list within list
我有一个输出想要颠簸变换,但我很难做到这一点
Json 示例:
{
"message": [
[
"2019",
"DATE"
],
[
"second",
"ORDINAL"
],
[
"Local",
"PERSON"
],
[
"2019",
"DATE"
],
[
"ISO",
"ORG"
],
[
"Ubuntu",
"PERSON"
]
]
}
我想让输出看起来像这样
{
"DATE": "2019",
"ORDINAL": "second",
"PERSON": "Local",
"DATE": "2019",
"ORG":"ISO",
"PERSON": "ubuntu"
}
转换应从下面显示的内容开始,但由于列表以及不断变化的键和值,我感到困惑。原文显示键为大写值,而值为小写值,它们在原文中是倒过来的。
{
"operation": "shift",
"spec": {
....
当前所需的输出不是有效的 JSON,因为具有重复的 DATE
和 PERSON
键。你想要的可能是
{
"DATE" : [ "2019", "2019" ],
"ORDINAL" : "second",
"PERSON" : [ "Local", "Ubuntu" ],
"ORG" : "ISO"
}
然后,您可以使用以下规范
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"0": "@(2,[&1][1])"
}
}
}
}
]
我们通过使用连续的 "*"
通配符遍历 messages
数组的索引,形成这样的 JSON
{
"0" : [ "2019", "DATE" ],
"1" : [ "second", "ORDINAL" ],
"2" : [ "Local", "PERSON" ],
"3" : [ "2019", "DATE" ],
"4" : [ "ISO", "ORG" ],
"5" : [ "Ubuntu", "PERSON" ]
}
然后 "0"
用于获取第二个组件,"@(2,[&1][1])"
用于从该 JSON 值获取每个数组的第一个组件。
我有一个输出想要颠簸变换,但我很难做到这一点
Json 示例:
{
"message": [
[
"2019",
"DATE"
],
[
"second",
"ORDINAL"
],
[
"Local",
"PERSON"
],
[
"2019",
"DATE"
],
[
"ISO",
"ORG"
],
[
"Ubuntu",
"PERSON"
]
]
}
我想让输出看起来像这样
{
"DATE": "2019",
"ORDINAL": "second",
"PERSON": "Local",
"DATE": "2019",
"ORG":"ISO",
"PERSON": "ubuntu"
}
转换应从下面显示的内容开始,但由于列表以及不断变化的键和值,我感到困惑。原文显示键为大写值,而值为小写值,它们在原文中是倒过来的。
{
"operation": "shift",
"spec": {
....
当前所需的输出不是有效的 JSON,因为具有重复的 DATE
和 PERSON
键。你想要的可能是
{
"DATE" : [ "2019", "2019" ],
"ORDINAL" : "second",
"PERSON" : [ "Local", "Ubuntu" ],
"ORG" : "ISO"
}
然后,您可以使用以下规范
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"0": "@(2,[&1][1])"
}
}
}
}
]
我们通过使用连续的 "*"
通配符遍历 messages
数组的索引,形成这样的 JSON
{
"0" : [ "2019", "DATE" ],
"1" : [ "second", "ORDINAL" ],
"2" : [ "Local", "PERSON" ],
"3" : [ "2019", "DATE" ],
"4" : [ "ISO", "ORG" ],
"5" : [ "Ubuntu", "PERSON" ]
}
然后 "0"
用于获取第二个组件,"@(2,[&1][1])"
用于从该 JSON 值获取每个数组的第一个组件。