Толчок для преобразования массива JSON - PullRequest
0 голосов
/ 28 августа 2018

Я хочу использовать Jolt для преобразования набора данных JSON. Проблема в том, что весь мой набор данных обрабатывается как массив, потому что он изначально преобразован из XML. Вот пример первых 3 записей:

{

    "XMLSOCCER.COM" : { "Team" :[{

    "Team_Id" : "45",
    "Name" : "Aberdeen",
    "Country" : "Scotland",
    "Stadium" : "Pittodrie Stadium",
    "HomePageURL" : "http://www.afc.co.uk",
    "WIKILink" : "http://en.wikipedia.org/wiki/Aberdeen_F.C.",
    "Capacity" : "20866",
    "Manager" : "Derek McInnes"
},{

    "Team_Id" : "46",
    "Name" : "St Johnstone",
    "Country" : "Scotland",
    "Stadium" : "McDiarmid Park",
    "HomePageURL" : "http://www.perthstjohnstonefc.co.uk",
    "WIKILink" : "http://en.wikipedia.org/wiki/St._Johnstone_F.C."
},{

    "Team_Id" : "47",
    "Name" : "Motherwell",
    "Country" : "Scotland",
    "Stadium" : "Fir Park Stadium",
    "HomePageURL" : "http://www.motherwellfc.co.uk",
    "WIKILink" : "http://en.wikipedia.org/wiki/Motherwell_F.C."
}}]}}

Для одного набора записей я могу использовать эту спецификацию, которая дает мне правильный вывод:

[
{
"operation": "shift",
"spec": {
  "XMLSOCCER.COM": {
    "Team": {
      "Team_Id": "Team_Id",
      "Name": "Name",
      "Country": "Country",
      "Stadium": "Stadium",
      "Capacity": "Capacity",
      "Manager": "Manager"
    }
  }
}}]

Но поскольку весь мой набор данных обрабатывается как массив JSON (массив в разделе «Команда»), я не могу понять, как создать спецификацию для работы с этой конфигурацией. Я ценю любой вклад. спасибо!

1 Ответ

0 голосов
/ 31 августа 2018

Spec: Соответствует всем элементам массива Team, а затем ссылается на номер элемента массива Team для каждого ключа в выходных данных.

[
  {
    "operation": "shift",
    "spec": {
      "XMLSOCCER.COM": {
        "Team": {
          "*": {
            "Team_Id": "soccer[&1].Team_Id",
            "Name": "soccer[&1].Name",
            "Country": "soccer[&1].Country",
            "Stadium": "soccer[&1].Stadium",
            "Capacity": "soccer[&1].Capacity",
            "Manager": "soccer[&1].Manager"
          }
        }
      }
    }
  }
]
...