Застрял на простом преобразовании толчка

Итак, я получил этот json из API Карт Google, и я просто хочу получить долготу и широту. Я хочу использовать шаблон jolt для извлечения только той информации, которая мне нужна.

{
  "results": [
    {
      "address_components": [
        {
          "long_name": "1115",
          "short_name": "1115",
          "types": [
            "street_number"
          ]
        },
        {
          "long_name": "West Idaho Avenue",
          "short_name": "W Idaho Ave",
          "types": [
            "route"
          ]
        },
        {
          "long_name": "Ontario",
          "short_name": "Ontario",
          "types": [
            "locality",
            "political"
          ]
        },
        {
          "long_name": "Malheur County",
          "short_name": "Malheur County",
          "types": [
            "administrative_area_level_2",
            "political"
          ]
        },
        {
          "long_name": "Oregon",
          "short_name": "OR",
          "types": [
            "administrative_area_level_1",
            "political"
          ]
        },
        {`enter code here`
          "long_name": "United States",
          "short_name": "US",
          "types": [
            "country",
            "political"
          ]
        },
        {
          "long_name": "97914",
          "short_name": "97914",
          "types": [
            "postal_code"
          ]
        },
        {
          "long_name": "2146",
          "short_name": "2146",
          "types": [
            "postal_code_suffix"
          ]
        }
      ],
      "formatted_address": "1115 W Idaho Ave, Ontario, OR 97914, USA",
      "geometry": {
        "location": {
          "lat": 44.0294445,
          "lng": -116.9776502
        },
        "location_type": "ROOFTOP",
        "viewport": {
          "northeast": {
            "lat": 44.03079348029149,
            "lng": -116.9763012197085
          },
          "southwest": {
            "lat": 44.02809551970849,
            "lng": -116.9789991802915
          }
        }
      },
      "partial_match": true,
      "place_id": "ChIJP3C3Z6uPr1QRUDkcSIXzx5g",
      "types": [
        "establishment",
        "point_of_interest",
        "school"
      ]
    }
  ],
  "status": "OK"
}

Итак, это спецификация толчка, которую я использую:

[
  {
    "operation": "shift",
    "spec": {
      "results": {
        "*": {
          "geometry": {
            "location": {
              "lat": "employees[&1].firstName",
              "lng": "employees[&1].lastName"
            }
          }
        }
      }
    }
  }
]

Я хотел бы получить JSON, который выглядит следующим образом:

{
  "data" : [ 
  {
     "lng": "-116.9763012197085",
     "lat": "44.0294445"
  } ]
}

Но я продолжаю получать ноль... Любая помощь будет оценена спасибо

1 ответ

Ваша оригинальная спецификация не работала, потому что "lat": "employees[&1].firstName" должно быть "lat": "employees[&3].firstName",

В этом случае &1 оценивается на слово "местоположение". &3 возвращает вас к дереву к индексу ввода results массив, который, как я думаю, вы имели в виду.

Shift поддерживает стек во время преобразования & Подстановочный знак позволяет вам получить ранее согласованные значения из стека / вверх по дереву.

Отсюда "lat" в спецификации, это 4 уровня вверх по стеку 0,1,2,3, чтобы добраться до индекса массива результатов, который соответствовал *,

спекуляция

[
  {
    "operation": "shift",
    "spec": {
      "results": {
        "*": {
          "geometry": {
            "location": {
              "lat": "data[&3].lat",
              "lng": "data[&3].lng"
            }
          }
        }
      }
    }
  }
]
Другие вопросы по тегам