Разбор JSON в JAVA с GSON - PullRequest
       7

Разбор JSON в JAVA с GSON

0 голосов
/ 19 сентября 2018

Я пытаюсь проанализировать файл JSON с GSON со следующей структурой:

{
  "state": 0,
  "orders": {
    "1": {
      "idOrder": "1564",
      "price": "7.99",
      },
    "3": {
      "idOrder": "4896",
      "price": "9.99",
      },
    "7": {
      "idOrder": "4896",
      "price": "10.99",
      }
  }
}

Я создал классы как одну и ту же структуру (с установщиками и получателями)

public class myJson {
private int error;
private Orders orders; }

public class Orders {
@SerializedName("1")
private _1 _1;}

public class _1 {
private String idOrder;
private String price;}

и в основном я использую как это:

       Gson gson = new Gson();
       BufferedReader br = new BufferedReader (new FileReader("base.json"));
       Json jsonOffline = gson.fromJson(br, myJson.class);
       System.out.println("1 - Orderid: " + jsonOffline.getOrders().get1().getidOrder() );

*

И это прекрасно работает печать: "1 - Orderid: 1564"

*

И теперь у меня проблема в том, что эти числа (1,3,7) в файле JSON являются случайными и может иметь много порядков.Можно ли мне указать диапазон чисел, например, 1-1000, и в этом случае, если результат не равен нулю, сделать то же самое?

Я имею в виду, чтобы избежатьсоздать 1000 классов, таких как класс _1

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Почему бы не сделать что-то вроде этого:

public class MyJson {
    private int error;
    private Map<String, Order> orders;
    // getters and setters
}

С Order, определенным так:

public class Order {
    private String idOrder;
    private String price;
    // getters and setters
}

И main метод будет выглядеть так:

public static void main(String[] args) throws FileNotFoundException {
    Gson gson = new Gson();
    BufferedReader br = new BufferedReader(new FileReader("base.json"));
    MyJson jsonOffline = gson.fromJson(br, MyJson.class);
    System.out.println("1 - Orderid: " + jsonOffline.getOrders().get("1").getIdOrder());
}
0 голосов
/ 19 сентября 2018

Изменить заказы на Map (HashMap)

private Map<String, Orders> orders;

И Orders на:

public class Orders {

    private String idOrder;
    private String price;

}

Это должно проанализировать Json, как ожидается.

Этот вопрос имеет симуляционный подход, но не использует отображение классов в примере

...