Извлечь данные из сложного объекта в js
Требуется извлечь из JSON объекта данные.
Сервер возвращает мне объект такого типа:
{
"response": {
"GeoObjectCollection": {
"metaDataProperty": {
"GeocoderResponseMetaData": {
"request": "Москва, правды, д",
"results": "10",
"found": "6"
}
},
"featureMember": [
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "street",
"text": "Россия, Москва, улица Правды",
"kind": "street",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, улица Правды",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "street",
"name": "улица Правды"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, улица Правды",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"Thoroughfare": {
"ThoroughfareName": "улица Правды"
}
}
}
}
}
}
},
"name": "улица Правды",
"description": "Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.574507 55.782132",
"upperCorner": "37.584766 55.791643"
}
},
"Point": {
"pos": "37.579888 55.786617"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Юго-Западный административный округ"
},
{
"kind": "district",
"name": "район Южное Бутово"
},
{
"kind": "district",
"name": "микрорайон Д"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Юго-Западный административный округ",
"DependentLocality": {
"DependentLocalityName": "район Южное Бутово",
"DependentLocality": {
"DependentLocalityName": "микрорайон Д"
}
}
}
}
}
}
}
}
},
"name": "микрорайон Д",
"description": "район Южное Бутово, Юго-Западный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.536419 55.536298",
"upperCorner": "37.543866 55.540419"
}
},
"Point": {
"pos": "37.540416 55.538728"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Ростовская область, Зерноградский район, хутор Путь Правды",
"kind": "locality",
"Address": {
"country_code": "RU",
"formatted": "Россия, Ростовская область, Зерноградский район, хутор Путь Правды",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Южный федеральный округ"
},
{
"kind": "province",
"name": "Ростовская область"
},
{
"kind": "area",
"name": "Зерноградский район"
},
{
"kind": "locality",
"name": "хутор Путь Правды"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Ростовская область, Зерноградский район, хутор Путь Правды",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Ростовская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "Зерноградский район",
"Locality": {
"LocalityName": "хутор Путь Правды"
}
}
}
}
}
}
},
"name": "хутор Путь Правды",
"description": "Зерноградский район, Ростовская область, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "40.99946 46.921242",
"upperCorner": "41.058048 46.948421"
}
},
"Point": {
"pos": "41.037207 46.926381"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д1",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д1",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Юго-Западный административный округ"
},
{
"kind": "district",
"name": "район Южное Бутово"
},
{
"kind": "district",
"name": "микрорайон Д1"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д1",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Юго-Западный административный округ",
"DependentLocality": {
"DependentLocalityName": "район Южное Бутово",
"DependentLocality": {
"DependentLocalityName": "микрорайон Д1"
}
}
}
}
}
}
}
}
},
"name": "микрорайон Д1",
"description": "район Южное Бутово, Юго-Западный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.534559 55.538667",
"upperCorner": "37.537685 55.542034"
}
},
"Point": {
"pos": "37.535817 55.540261"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Юго-Восточный административный округ, район Печатники, микрорайон 34Д",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Юго-Восточный административный округ, район Печатники, микрорайон 34Д",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Юго-Восточный административный округ"
},
{
"kind": "district",
"name": "район Печатники"
},
{
"kind": "district",
"name": "микрорайон 34Д"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Юго-Восточный административный округ, район Печатники, микрорайон 34Д",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Юго-Восточный административный округ",
"DependentLocality": {
"DependentLocalityName": "район Печатники",
"DependentLocality": {
"DependentLocalityName": "микрорайон 34Д"
}
}
}
}
}
}
}
}
},
"name": "микрорайон 34Д",
"description": "район Печатники, Юго-Восточный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.717447 55.691131",
"upperCorner": "37.723654 55.695144"
}
},
"Point": {
"pos": "37.720699 55.693196"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Северный административный округ, Тимирязевский район, жилой комплекс Д1",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Северный административный округ, Тимирязевский район, жилой комплекс Д1",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Северный административный округ"
},
{
"kind": "district",
"name": "Тимирязевский район"
},
{
"kind": "district",
"name": "жилой комплекс Д1"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Северный административный округ, Тимирязевский район, жилой комплекс Д1",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Северный административный округ",
"DependentLocality": {
"DependentLocalityName": "Тимирязевский район",
"DependentLocality": {
"DependentLocalityName": "жилой комплекс Д1"
}
}
}
}
}
}
}
}
},
"name": "жилой комплекс Д1",
"description": "Тимирязевский район, Северный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.577678 55.808184",
"upperCorner": "37.579861 55.80914"
}
},
**"Point": {
"pos": "37.57863 55.80871"
}**
}
}
]
}
}
из него мне надо получить объект Point с его данными. Это данные долготы и широты после чего методом split разделю его на долготу и широту, которые запишу в стейт переменные в React JS приложения
Ответы (1 шт):
Автор решения: Stepan Kasyanenko
→ Ссылка
Для этого вы можете использовать метод map.
const data = {
"response": {
"GeoObjectCollection": {
"metaDataProperty": {
"GeocoderResponseMetaData": {
"request": "Москва, правды, д",
"results": "10",
"found": "6"
}
},
"featureMember": [{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "street",
"text": "Россия, Москва, улица Правды",
"kind": "street",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, улица Правды",
"Components": [{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "street",
"name": "улица Правды"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, улица Правды",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"Thoroughfare": {
"ThoroughfareName": "улица Правды"
}
}
}
}
}
}
},
"name": "улица Правды",
"description": "Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.574507 55.782132",
"upperCorner": "37.584766 55.791643"
}
},
"Point": {
"pos": "37.579888 55.786617"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д",
"Components": [{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Юго-Западный административный округ"
},
{
"kind": "district",
"name": "район Южное Бутово"
},
{
"kind": "district",
"name": "микрорайон Д"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Юго-Западный административный округ",
"DependentLocality": {
"DependentLocalityName": "район Южное Бутово",
"DependentLocality": {
"DependentLocalityName": "микрорайон Д"
}
}
}
}
}
}
}
}
},
"name": "микрорайон Д",
"description": "район Южное Бутово, Юго-Западный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.536419 55.536298",
"upperCorner": "37.543866 55.540419"
}
},
"Point": {
"pos": "37.540416 55.538728"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Ростовская область, Зерноградский район, хутор Путь Правды",
"kind": "locality",
"Address": {
"country_code": "RU",
"formatted": "Россия, Ростовская область, Зерноградский район, хутор Путь Правды",
"Components": [{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Южный федеральный округ"
},
{
"kind": "province",
"name": "Ростовская область"
},
{
"kind": "area",
"name": "Зерноградский район"
},
{
"kind": "locality",
"name": "хутор Путь Правды"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Ростовская область, Зерноградский район, хутор Путь Правды",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Ростовская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "Зерноградский район",
"Locality": {
"LocalityName": "хутор Путь Правды"
}
}
}
}
}
}
},
"name": "хутор Путь Правды",
"description": "Зерноградский район, Ростовская область, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "40.99946 46.921242",
"upperCorner": "41.058048 46.948421"
}
},
"Point": {
"pos": "41.037207 46.926381"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д1",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д1",
"Components": [{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Юго-Западный административный округ"
},
{
"kind": "district",
"name": "район Южное Бутово"
},
{
"kind": "district",
"name": "микрорайон Д1"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Юго-Западный административный округ, район Южное Бутово, микрорайон Д1",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Юго-Западный административный округ",
"DependentLocality": {
"DependentLocalityName": "район Южное Бутово",
"DependentLocality": {
"DependentLocalityName": "микрорайон Д1"
}
}
}
}
}
}
}
}
},
"name": "микрорайон Д1",
"description": "район Южное Бутово, Юго-Западный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.534559 55.538667",
"upperCorner": "37.537685 55.542034"
}
},
"Point": {
"pos": "37.535817 55.540261"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Юго-Восточный административный округ, район Печатники, микрорайон 34Д",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Юго-Восточный административный округ, район Печатники, микрорайон 34Д",
"Components": [{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Юго-Восточный административный округ"
},
{
"kind": "district",
"name": "район Печатники"
},
{
"kind": "district",
"name": "микрорайон 34Д"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Юго-Восточный административный округ, район Печатники, микрорайон 34Д",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Юго-Восточный административный округ",
"DependentLocality": {
"DependentLocalityName": "район Печатники",
"DependentLocality": {
"DependentLocalityName": "микрорайон 34Д"
}
}
}
}
}
}
}
}
},
"name": "микрорайон 34Д",
"description": "район Печатники, Юго-Восточный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.717447 55.691131",
"upperCorner": "37.723654 55.695144"
}
},
"Point": {
"pos": "37.720699 55.693196"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Москва, Северный административный округ, Тимирязевский район, жилой комплекс Д1",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Москва, Северный административный округ, Тимирязевский район, жилой комплекс Д1",
"Components": [{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Москва"
},
{
"kind": "locality",
"name": "Москва"
},
{
"kind": "district",
"name": "Северный административный округ"
},
{
"kind": "district",
"name": "Тимирязевский район"
},
{
"kind": "district",
"name": "жилой комплекс Д1"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Москва, Северный административный округ, Тимирязевский район, жилой комплекс Д1",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Москва",
"Locality": {
"LocalityName": "Москва",
"DependentLocality": {
"DependentLocalityName": "Северный административный округ",
"DependentLocality": {
"DependentLocalityName": "Тимирязевский район",
"DependentLocality": {
"DependentLocalityName": "жилой комплекс Д1"
}
}
}
}
}
}
}
}
},
"name": "жилой комплекс Д1",
"description": "Тимирязевский район, Северный административный округ, Москва, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "37.577678 55.808184",
"upperCorner": "37.579861 55.80914"
}
},
"Point": {
"pos": "37.57863 55.80871"
}
}
}
]
}
}
}
const points = data.response.GeoObjectCollection.featureMember.map(m => m.GeoObject.Point);
console.log(points);