Получение одной строки из json

Использую геокодер от Яндекса для получения адреса по координатам. Ответ получаю в формате 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"
            }
          }
        }
      ]
    }
  }
}

Из всего этого мне нужно только одно значение (response - GeoObjectCollection - featureMember - 0 - GeoObject - metaDataProperty - GeocoderMetaData - text). Получить его нужно с помощью Java. Были попытки распарсить с помощью GSON, но из-за достаточно сложной структуры json что-то не получается. Подскажите самый простой способ получить эту строку, может можно без парсинга к ней обратиться?


Ответы (1 шт):

Автор решения: all_possible

Решено следующим образом (stringResponse - ответ геокодера в json формате):

JSONObject json = new JSONObject(stringResponse);
final String MyAddress = json.getJSONObject("response")
.getJSONObject("GeoObjectCollection")
.getJSONArray("featureMember")
.getJSONObject(0)
.getJSONObject("GeoObject")
.getJSONObject("metaDataProperty")
.getJSONObject("GeocoderMetaData")
.getString("text");
→ Ссылка