Как получить доступ к определенному элементу из вывода JSON с помощью Gson

1

Мне нужно получить доступ только к значению "formatted_address": атрибут "4 Place du Louvre, 75001 Paris, France". Пожалуйста, помогите мне, как это сделать с помощью com.google.gson.Gson и java. Без поддержки отдельного класса POJO для всей структуры.

{
    "results": [{
        "address_components": [{
            "long_name": "4",
            "short_name": "4",
            "types": ["street_number"]
        }, {
            "long_name": "Place du Louvre",
            "short_name": "Place du Louvre",
            "types": ["route"]
        }, {
            "long_name": "Paris",
            "short_name": "Paris",
            "types": ["locality", "political"]
        }, {
            "long_name": "Paris",
            "short_name": "75",
            "types": ["administrative_area_level_2", "political"]
        }, {
            "long_name": "Île-de-France",
            "short_name": "IDF",
            "types": ["administrative_area_level_1", "political"]
        }, {
            "long_name": "France",
            "short_name": "FR",
            "types": ["country", "political"]
        }, {
            "long_name": "75001",
            "short_name": "75001",
            "types": ["postal_code"]
        }],
        "formatted_address": "4 Place du Louvre, 75001 Paris, France",
        "geometry": {
            "location": {
                "lat": 48.8600425,
                "lng": 2.3412674
            },
            "location_type": "ROOFTOP",
            "viewport": {
                "northeast": {
                    "lat": 48.86139148029149,
                    "lng": 2.342616380291502
                },
                "southwest": {
                    "lat": 48.8586935197085,
                    "lng": 2.339918419708498
                }
            }
        },
        "types": ["street_address"]
    }],
    "status": "OK"
}

Я ожидаю решения, как показано ниже, но с gson.

final JSONObject jso = results.getJSONObject(i);
formattedAddress = jso.getString("formatted_address"));
  • 0
    Можете ли вы показать нам, что вы пробовали, но это не сработало, чтобы мы могли указать, где вы ошиблись?
Теги:
gson

1 ответ

4
Лучший ответ

Чтобы проанализировать строку в элемент Json и получить структуру объекта

JsonElement jelement = new JsonParser().parse(jsonLine);
JsonObject jobject = jelement.getAsJsonObject();

Чтобы получить объект, используйте:

JsonObject anObject = jobject.getAsJsonObject("object_name");

Чтобы получить массив, используйте:

JsonArray jarray = anObject.getAsJsonArray("array_name");

Чтобы получить значение String, используйте:

String result = anObject.get("property_name").toString();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню