Толчок трансформируется из массива в объект и извлекает значение - PullRequest
0 голосов
/ 03 января 2019

Мне нужно выполнить преобразование Джолта в следующем примере json:

Введите

[
  {
    "DOCUMENT_HEADER_ID": "29120",
    "Descrizione": "GAS",
    "PrezzoTotale": "8.51"
  },
  {
    "DOCUMENT_HEADER_ID": "29120",
    "Descrizione": "IMPOSTE",
    "PrezzoTotale": "7.25"
  },
  ...
]

Мне нужно преобразовать в

{
  "DOCUMENT_HEADER_ID" : "29120",
  "invoice" : [ 
  {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "GAS",
    "PrezzoTotale" : "8.51"
  }, {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "IMPOSTE",
    "PrezzoTotale" : "7.25"
  },
  ...
  ]
}

Использование этой спецификации

[
  {
    "operation": "shift",
    "spec": {
      "@": "invoice"
    }
  }
]

У меня есть такой вывод:

{
  "invoice" : [ {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "GAS",
    "PrezzoTotale" : "8.51"
  }, {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "IMPOSTE",
    "PrezzoTotale" : "7.25"
  },
  ...
  ]
}

но я не могу понять, как извлечь значение DOCUMENT_HEADER_ID из первого элемента исходного массива

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Может сделать это за одну смену.

[
  {
    "operation": "shift",
    "spec": {
      "@": "invoice",
      "0": {
        "DOCUMENT_HEADER_ID": "DOCUMENT_HEADER_ID"
      }
    }
  }
]
0 голосов
/ 03 января 2019

Я нашел правильную спецификацию

[
  {
    "operation": "shift",
    "spec": {
      "@": "invoice"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "invoice": {
        "0": {
          "DOCUMENT_HEADER_ID": "DOCUMENT_HEADER_ID"
        },
        "@": "invoice"
      }
    }
  }
]
...