【发布时间】:2020-11-14 06:50:21
【问题描述】:
我正在尝试制作一个需要使用 json 的 java 程序,我选择 gson 作为我的库来处理管理 JSON
但是当我尝试反序列化我的 json 时,messagereturn.text 值和 extra.text 值都设置为 null,我试图解决这个问题,但我无法解决。
我试图反序列化的 json 示例是
{
"text":"",
"extra":[{
"text":"eee joined the game",
"color":"yellow"
}]
}
这就是我对 gson 的称呼
Message messagepacket = event.<ServerChatPacket>getPacket().getMessage();
Messagereturn mr = new Gson().fromJson(String.valueOf(messagepacket), Messagereturn.class);
System.out.println(mr.returnmethod());
这也是我要反序列化的类
messagereturn.java
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class Messagereturn {
@SerializedName("text")
@Expose
private String text;
@SerializedName("extra")
@Expose
private List<Extra> extra = null;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public List<Extra> getExtra() {
return extra;
}
public void setExtra(List<Extra> extra) {
this.extra = extra;
}
public String returnmethod() {
Extra extra = new Extra();
return getText() + extra.getText();
}
}
Extra.java
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Extra {
@SerializedName("text")
@Expose
private String text;
@SerializedName("color")
@Expose
private String color;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
【问题讨论】: