【发布时间】:2018-02-15 12:05:37
【问题描述】:
我正在开发使用 gson 解析 json 响应的 rest 客户端程序。我的json响应如下
{
"Status": "success",
"Data": [
{
"ID": "123",
"Type": 0,
"OperatorID": null,
"DepartmentID": "128",
"LanguageCode": "en-US",
"WebsiteDefID": "160",
"VisitID": "737",
},
{
"ID": "737867804181437078",
"Type": 0,
"OperatorID": "1785",
"DepartmentID": "200",
"LanguageCode": "en-US",
"WebsiteDefID": "160",
"VisitID": "737",
"CustomFields": {
"Model": "ABCD",
"Question": "ABCD"
}
}
]
}
格森:
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson= gsonBuilder.create();
Info info = gson.fromJson(inactiveChatMessages, Info.class);
而我的Info 和Data Pojo 类如下:
public class Info {
private String Status;
private Data[] Data;
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public Data[] getData() {
return Data;
}
public void setData(Data[] data) {
Data = data;
}
@Override
public String toString() {
return "ChatInfo [Status=" + Status + ", Data=" + Arrays.toString(Data) + "]";
}
}
数据:
public class Data {
private String ID;
private String OperatorID;
private String DepartmentID;
private CustomFields CustomFields;
public String getID() {
return ChatID;
}
public void setID(String ID) {
ChatID = chatID;
}
public String getOperatorID() {
return OperatorID;
}
public void setOperatorID(String operatorID) {
OperatorID = operatorID;
}
public String getDepartmentID() {
return DepartmentID;
}
public void setDepartmentID(String departmentID) {
DepartmentID = departmentID;
}
@Override
public String toString() {
return "Data [ID=" + ID + ", OperatorID=" + OperatorID + ", DepartmentID=" + DepartmentID + ", CustomFields=" + CustomFields
+ "]";
}
}
在数组中的Data pojo 中,我只访问我需要的字段。但作为回应,我总是将数据数组设为空。没有错误。所以我真的不知道到底出了什么问题。谁能帮我解决这个问题?
Info [Status=success, Data=[]]
【问题讨论】:
-
使用jsonschema2pojo.org生成POJO,看来你的POJO对GSON无效,需要@SerializableName("param")注解
-
我已经试过了。但没有运气
-
请用jsoneditoronline.org纠正你的杰森一次
标签: java json rest gson jersey-2.0