【发布时间】:2023-12-25 05:03:01
【问题描述】:
假设接收到以下 JSON 数据:
{
"request" : "connection_status",
"data" : { "id" : "foo", "username" : "bar" }
}
并且您想将其反序列化为类定义如下的 Java 对象:
public class SingleJsonObjectRequest {
private String request;
private Object data;
public String getRequest() {
return request;
}
public void setRequest(String request) {
this.request = request;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
显然,您甚至有以下课程:
public class UserInfo {
private String id;
private String username;
public String getId() {
return id;
}
public UserInfo setId(String id) {
this.id = id;
return this;
}
public String getUsername() {
return username;
}
public UserInfo setUsername(String username) {
this.username = username;
return this;
}
}
可以通过调用将其包含在 SingleJsonObjectRequest 中:
singleObjReq.setData(new UserInfo());
有没有办法将该 JSON 数据转换为 SingleJsonObjectRequest 对象?我的意思是,您不能使用以下代码:
SingleJsonObjectRequest singleObjReq = gson.fromJson(jsonReq, SingleJsonObjectRequest.class);
因为 SingleJsonObjectRequest 有一个通用的数据对象,而不是一个 UserInfo 对象。
【问题讨论】:
标签: java json deserialization converter gson