Застрял на простом преобразовании толчка
Итак, я получил этот 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"
}
}
}
}
}
}
]