Незначительная модификация Jolt JSON - взять фигуру из одного массива - PullRequest
1 голос
/ 11 июня 2019

Я так близок с этим, но боюсь, что мне нужна рука с преобразованием толчка. Я сделал большую часть работы, но не могу заставить работать в последнюю минуту преобразование.

Вот мои данные:

{
  "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": "shift",
    "spec": {
      "rows": {
        "*": {
          "value": "[&1].date",
          "data": "[&1].data"
        }
      }
    }
}
]

Это дает мне такой результат:

[ {
  "date" : "00:00 2019-06-03",
  "data" : [ 120 ]
}, {
  "date" : "22:00 2019-06-09",
  "data" : [ 307 ]
}, {
  "date" : "23:00 2019-06-09",
  "data" : [ 172 ]
} ]

Это вызывает проблемы в моей системе, мне действительно нужно поле данных, например:

[ {
  "date" : "00:00 2019-06-03",
  "data" : "120"
}, {
  "date" : "05:00 2019-06-08",
  "data" : "98"
} ]

Как вынуть предмет из массива / квадратных скобок? Там будет только один предмет.

1 Ответ

1 голос
/ 13 июня 2019

Вы должны пойти глубже и принять значение.Вам это понятно?

[
  {
    "operation": "shift",
    "spec": {
      "rows": {
        "*": {
          "value": "[&1].date",
          "data": {
            "*": "[&2].data"
          }
        }
      }
    }
  }
]

И если вам нужны строки, добавьте:

  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "data": "=toString"
      }
    }
  }
...