Переместить дочерний идентификатор в родительский идентификатор в толчке - PullRequest
0 голосов
/ 25 марта 2020

У меня есть входное значение ниже json, и мне нужно преобразовать его в вывод json с помощью толчка.

** Input **
{
"A": "value1",
"B": "value2",
"C":{
"D": "x1",
"E": "x2"
}
}

** output **

{
"A": "value1",
"B": "value2",
"E": "x2"
"C":{
"D": "x1"
}
}

Может кто-нибудь помочь мне с характеристиками толчка?

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Возьмите E из вложенного документа и поместите его в документ root.

Jolt spe c:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[&1].&",
        "C": {
          "E": "[&2].&",
          "*": "[&2].C.&"
        }
      }
    }
  }
]

Ввод:

[
  {
    "A": "value1",
    "B": "value2",
    "C": {
      "D": "x1",
      "E": "x2",
      "F": {
        "a": "x1",
        "x": {
          "y": 1
        }
      },
      "H": "x4"
    }
  }
]

Вывод:

[ {
  "A" : "value1",
  "B" : "value2",
  "C" : {
    "D" : "x1",
    "F" : {
      "a" : "x1",
      "x" : {
        "y" : 1
      }
    },
    "H" : "x4"
  },
  "E" : "x2"
} ]
0 голосов
/ 26 марта 2020

Попробуйте с этим jolt spe c:

[
  {
    "operation": "shift",
    "spec": {
      "A": "A",
      "B": "B",
      "C": {
        "E": "E",
        "@D": "C.D"
      }
    }
  }]

Output:

{
  "A" : "value1",
  "B" : "value2",
  "C" : {
    "D" : "x1"
  },
  "E" : "x2"
}
...