HCIMS DEVELOPER Ответов: 2

преобразование строки json в объект класса pojo в java


Я создал строку JSON как THS
{"vehicles":[{"vehicle":[{"department":[{"Item":[{"itemId":31,"itemName":"c7"},{"itemId":32,"itemName":"c2"}],"depId":21,"departmentName":"d1"}],"vId":11,"VName":"aaa"},{"department":[{"Item":[{"itemId":33,"itemName":"c3"},{"itemId":34,"itemName":"c4"}],"depId":22,"departmentName":"d2"},{"Item":[{"itemId":36,"itemName":"c1"}],"depId":24,"departmentName":"d3"}],"vId":12,"VName":"bbbb"},{"department":[{"Item":[{"itemId":30,"itemName":"c6"},{"itemId":35,"itemName":"c5"}],"depId":23,"departmentName":"d4"}],"vId":13,"VName":"cccc"},{"department":[{"Item":[{"itemid":37,"itemName":"c8","status":0}],"depId":25,"departmentName":"d5"}],"vId":14,"VName":"ddd"}]}]}

Я попытался преобразовать то же самое с помощью приведенного ниже кода
Gson gsonObj = new Gson();
Vehicles vehicles = gsonObj.fromJson(jsonData, Vehicles.class);

но переменная vehicles показывает нулевое значение. Как я могу преобразовать строку json в объект класса pojo?
мой класс pojo выглядит следующим образом
public class Vehicles {
private List<Vehicle> vehicle;
public List<Vehicle> getVehicle() {
    return vehicle;
}
public void setVehicle(List<Vehicle> vehicle) {
    this.vehicle= vehicle;
}
    }

и
public class Vehicle{
   private Integer vId;
  private String VName;
   private List<Department> department;
  //getters and setters;
   }

и
public class Department{
    private Integer depId;
private String departmentName;
private List<Item> item;
   //getters and setters
   }

и
public class Item{
 private Integer itemId;
 private String itemName;
 //getters and setters
  }

2 Ответов

Рейтинг:
1

Member 14086919

Привет,

пожалуйста, позвольте нам иметь полный проект из этого учебника.

BR
Мехди


Richard Deeming

Даже смутно не пытаясь ответить на этот вопрос!

Рейтинг:
0

Mayur Raiyani

Вы передаете неверное значение json в анализатор Gson.
Ваша строка Json, начинающаяся с

Цитата:
{"транспортные средства":[{"транспортное средство":[{"отдел":[...
таким образом, первый элемент объекта-это транспортные средства и в
Цитата:
Vehicles.class
там нет переменной с именем vehicles, поэтому она не может ассинговать значения.

Вам просто нужно обновить строку, чтобы начать с массива
Цитата:
{"транспортное средство":[{"отдел":[{"пункт":[{...
приведенная выше строка будет успешно запущена и проанализирована в объект.