Ищем схему 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 ответа
Проверьте библиотеку 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 субмодуль те, ФТВ.