У меня есть следующие два JsonsDeserialize Json с такой же структурой, но с разными названиями полей
"attrs": {
"rect": {
"fill": "blue"
},
"text": {
"fill": "white",
"text": "my box"
}
}
и
"attrs": {
"circle": {
"fill": "red"
},
"text": {
"text": "my circle",
"fill": "yellow"
}
}
есть способ десериализации JSON к определенному классу, а именно class Rect
и class Circle
в то время как разборе? Я использую Gson 2.4
Это, как я называю это прямо сейчас:
Element[] element = gson.fromJson(arguments.toJson(), Element[].class);
И класс Element имеет такую структуру
public class Element {
private Attributes attr;
public class Attributes{
private Rectangle rect;
private Circle circle;
}
Как я могу сказать gson, чтобы выбрать один из поля? Сейчас один из них будет нулевым, и я не хочу этого, потому что у меня будет больше форм.
Если я понял вопрос, вы можете сделать два поля - «Прямоугольник» и «Круг круга». Затем, после разбора, один из них будет «null», а другой будет иметь значение. –
@YeldarKurmangaliyev Я поставил больше кода в свой вопрос. –