【发布时间】:2020-06-21 21:26:37
【问题描述】:
我有一个 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);
/* .... */
我的问题是如何在MyDesClass 中同时转换两个值(例如first 和second)(例如此处为num1 和num2)?目前,我收到SerializedName is not a repeatable annotation type 错误。
【问题讨论】:
标签: java json gson json-deserialization