Ищем схему JSON внутри JsonObject

Я загружаю объект JSON с удаленного сервера и преобразую его в простой POJO (используя gson lib).
Я знаю схему JSON, скажем, это выглядит так:

{
    "a": "something",
    "c": "something",
    "e": "something"
  }

Тем не менее, ответ JSON может быть помещен во множество различных полей-оболочек, например:

{
    "some_name":
    {
     "a": "b",
     "c": "d",
     "e": "f"
    }
}

{
    "some_name":
    {
        "some_other_name":
        {
          "a": "b",
          "c": "d",
          "e": "f"
        }
    }
}

Я могу добраться до реального контента с помощью пары ifs, но мне интересно, есть ли способ найти данную схему во всех полях, чтобы получить желаемый контент.

Должен ли я просматривать JsonObject"s entrySet и проверить каждое значение или есть более быстрый / лучший метод для этого?

2 ответа

Решение

Я заканчиваю цикл entrySet и ищу мой образец.

Проверьте библиотеку gson, думаю, вам понравится

https://sites.google.com/site/gson/gson-user-guide

https://code.google.com/p/google-gson/

также, даже с помощью gson, это поможет вам узнать, как будет выглядеть JSON (это интерфейс, с которым мы имеем дело, да? =]) и подготовить набор классов, которые это представляют. Помните, что в Android(и в любом другом хорошо написанном Java) мы не используем геттеры и сеттеры при присваивании значений полям в объекте; мы просто публикуем их и обращаемся к ним напрямую. (Я вижу геттеры и сеттеры, используемые так, как если бы они защищали те поля, к которым они имеют непосредственный доступ, слишком часто для удобства)

так что вы получите набор классов, как это

class OuterClassName{
    public List<Apple> apples;
    public String picker;
}

class Apple{
    public int worms;
    public String color;
}

это в основном структуры и отображаются в ответ JSON. Как только вы это сделаете, все станет намного проще. Подсказка: если вы также пишете код сервера и он написан на Java, эти классы уже существуют; GIT субмодуль те, ФТВ.

Другие вопросы по тегам