у меня есть json-файл
{"apple" : [
{
"first" : 3,
"second" : 5,
}
],
"orange" : [
{
"fst" : 7,
"snd" : 8,
}
],
}
вспомогательный класс для десериализации
public class Helper {
private int num1;
private int num2;
public Helper(Helper other) {
this.num1 = other.num1;
this.num2 = other.num2;
}
public int getNum1() {
return this.num1;
}
public int getNum2() {
return this.num2;
}
}
Класс Java для десериализации, в котором мне нужно изменить ключи JSON, чтобы они были совместимы с именами экземпляров класса Helper
.
public class MyDesClass {
@SerializedName(value = "apple.first", alternate = "apple.num1")
@SerializedName(value = "apple.seconds", alternate = "apple.num2")
private final Helper[] apple;
public MyDesClass(Helper[] apple) {
this.apple = apple;
}
}
А также внутри main.java у меня есть:
/* .... */
Reader f = new FileReader( PATH_TO_THE_JSON_FILE);
Gson gson = new Gson();
GameBoard gameBoard = gson.fromJson(f, MyDesClass.class);
/* .... */
Мой вопрос: как я могу преобразовать два значения (например, first
и second
) одновременно (например, в num1
и num2
здесь) в MyDesClass
? В настоящее время я получаю ошибку SerializedName is not a repeatable annotation type
.