Я не уверен, что у меня точно возникла проблема, но если я это сделаю, решением может быть создание нового класса Java с именем say MyClass
. MyClass будет иметь Name1, ..., Name564 в качестве экземпляров, а число, цвет, автомобили - в качестве атрибутов, например:
class MyClass {
private String name;
private int number; //use int or String if you prefer
private String color; //you can also use enum instead
private Map<String, Integer> cars;
public MyClass(String name) {
this.name = name;
cars = new HashMap<>(); // or any other map implementation, depending on the needs
}
public void addCar(String model, int numCars) {
cars.put(model, numCars); // if you always want to replace, add any necessary checks before that
}
//or you can use setCars, seeing test.get("cars") as Map
public void setCars(Map<String,Integer> cars) {
this.cars = cars;
}
public void setNumber(int number) {
this.number = number;
}
public void setColor(String color) {
this.color = color;
}
}
Затем, когда вы выполняете итерацию json do c, вы можете установите поле, с которым вы столкнетесь. Для каждого элемента «Имя», с которым вы встречаетесь, вы можете создать новый экземпляр MyClass: MyClass currItem = new MyClass("Name"+counter)
, где counter
- это счетчик, который вы инициализируете от 1 до размера дочернего элемента «тестового» элемента.
doc.get("test").get("Name"+counter)
даст вам следующий предмет. Вы можете использовать .get("color")
, .get("number")
и .get("cars")
для соответствующих полей.
Надеюсь, это поможет.