Помогите мне разобрать этот вид JSON для Android - PullRequest
2 голосов
/ 09 июля 2011

У меня есть этот тип JSON от API:

[
    {
        "id": "12",
        "name": "elo2",
        "status": "ok",
        "vulumes": [
            {
                "id": 17592,
                "name": "vol1",
                "status": "ok"
            }
        ]
    },
    {
        "id": "13",
        "name": "elo",
        "status": "ok",
        "vulumes": [
            {
                "id": "17596",
                "name": "vol2",
                "status": "ok"
            }
        ]
    }
]

ИД 12 и 13 его полки, тома входит в состав полки с ИД 17592 и 17596

Я не могу разобрать его с помощью json, я пытаюсь использовать gson или json, но не могу понять, как получить блок sime, например, блок с идентификатором 12 для разбора информации о полке и существующих объемах на этой полке.

Вы можете мне помочь? В других интерфейсах я могу видеть именованные объекты с помощью k / v, но там ничего нет.

1 Ответ

1 голос
/ 09 июля 2011

С Gson, вот один простой подход, который вы можете использовать. Это демонстрирует структуру данных Java, которая соответствует примеру JSON, наряду с тем, как десериализовать и сериализовать ее, используя Gson.

public class Foo
{
  public static void main(String[] args) throws Exception
  {
    Gson gson = new Gson();
    Type thingsType = new TypeToken<List<Thing>>() {}.getType();
    List<Thing> things = gson.fromJson(new FileReader("input.json"), thingsType);
    System.out.println(gson.toJson(things));
  }
}

class Thing
{
  String id;
  String name;
  String status;
  List<Vulume> vulumes;
}

class Vulume
{
  String id;
  String name;
  String status;
}

Поскольку атрибуты двух типов объектов практически идентичны, возможно, предполагалось, что будет только один тип объекта со ссылкой на коллекцию объектов одного типа. Вот как это будет выглядеть.

public class Foo
{
  public static void main(String[] args) throws Exception
  {
    Gson gson = new Gson();
    Type thingsType = new TypeToken<List<Vulume>>() {}.getType();
    List<Vulume> things = gson.fromJson(new FileReader("input.json"), thingsType);
    System.out.println(gson.toJson(things));
  }
}

class Vulume
{
  String id;
  String name;
  String status;
  List<Vulume> vulumes;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...