我使用 Yandex 的地理编码器通过坐标获取地址。我得到 json 格式的响应:
{
"response": {
"GeoObjectCollection": {
"metaDataProperty": {
"GeocoderResponseMetaData": {
"Point": {
"pos": "34.366834 53.244996"
},
"request": "34.366834,53.244996",
"results": "10",
"found": "9"
}
},
"featureMember": [
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "exact",
"text": "Россия, Брянск, проспект Ленина, 28",
"kind": "house",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск, проспект Ленина, 28",
"postal_code": "241050",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
},
{
"kind": "street",
"name": "проспект Ленина"
},
{
"kind": "house",
"name": "28"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск, проспект Ленина, 28",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск",
"Thoroughfare": {
"ThoroughfareName": "проспект Ленина",
"Premise": {
"PremiseNumber": "28",
"PostalCode": {
"PostalCodeNumber": "241050"
}
}
}
}
}
}
}
}
}
},
"name": "проспект Ленина, 28",
"description": "Брянск, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.362698 53.242511",
"upperCorner": "34.370908 53.247436"
}
},
"Point": {
"pos": "34.366803 53.244973"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "street",
"text": "Россия, Брянск, проспект Ленина",
"kind": "street",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск, проспект Ленина",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
},
{
"kind": "street",
"name": "проспект Ленина"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск, проспект Ленина",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск",
"Thoroughfare": {
"ThoroughfareName": "проспект Ленина"
}
}
}
}
}
}
}
},
"name": "проспект Ленина",
"description": "Брянск, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.354801 53.235602",
"upperCorner": "34.37628 53.253599"
}
},
"Point": {
"pos": "34.365635 53.244489"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянск, Советский район",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск, Советский район",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
},
{
"kind": "district",
"name": "Советский район"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск, Советский район",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск",
"DependentLocality": {
"DependentLocalityName": "Советский район"
}
}
}
}
}
}
}
},
"name": "Советский район",
"description": "Брянск, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.260119 53.216405",
"upperCorner": "34.400705 53.281744"
}
},
"Point": {
"pos": "34.354101 53.235074"
}
}
},
{
"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": "34.191155 53.183819",
"upperCorner": "34.557461 53.374503"
}
},
"Point": {
"pos": "34.363425 53.243562"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, городской округ Брянск",
"kind": "area",
"Address": {
"country_code": "RU",
"formatted": "Россия, городской округ Брянск",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, городской округ Брянск",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск"
}
}
}
}
}
},
"name": "городской округ Брянск",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.191155 53.183819",
"upperCorner": "34.685938 53.374503"
}
},
"Point": {
"pos": "34.367683 53.270469"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянский район",
"kind": "area",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянский район",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "Брянский район"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянский район",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "Брянский район"
}
}
}
}
}
},
"name": "Брянский район",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "33.704825 53.062151",
"upperCorner": "34.980891 53.539789"
}
},
"Point": {
"pos": "34.087876 53.300395"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянская область",
"kind": "province",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянская область",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянская область",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область"
}
}
}
}
},
"name": "Брянская область",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "31.241878 51.843729",
"upperCorner": "35.328333 54.034241"
}
},
"Point": {
"pos": "33.422206 52.909198"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Центральный федеральный округ",
"kind": "province",
"Address": {
"country_code": "RU",
"formatted": "Россия, Центральный федеральный округ",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Центральный федеральный округ",
"CountryNameCode": "RU",
"CountryName": "Россия"
}
}
}
},
"name": "Центральный федеральный округ",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "30.750266 49.556986",
"upperCorner": "47.641729 59.625176"
}
},
"Point": {
"pos": "38.064727 54.87375"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия",
"kind": "country",
"Address": {
"country_code": "RU",
"formatted": "Россия",
"Components": [
{
"kind": "country",
"name": "Россия"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия",
"CountryNameCode": "RU",
"CountryName": "Россия"
}
}
}
},
"name": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "19.484764 41.185996",
"upperCorner": "191.128012 81.886117"
}
},
"Point": {
"pos": "99.505405 61.698657"
}
}
}
]
}
}
}
其中,我只需要一个值(响应 - GeoObjectCollection - featureMember - 0 - GeoObject - metaDataProperty - GeocoderMetaData - text)。您需要使用 Java 来获取它。有人尝试使用 GSON 进行解析,但由于 json 结构相当复杂,有些东西不起作用。告诉我获取这个字符串的最简单的方法,也许你可以不解析就引用它?
解决如下(
stringResponse- json格式的地理编码器响应):