Gson反序列化问题
我需要帮助用gson反序列化JSON 我有一个JSON:Gson反序列化问题,gson,deserialization,Gson,Deserialization,我需要帮助用gson反序列化JSON 我有一个JSON: { "result":{ "grid":{ "javaClass":"com.company.collections.GridSummary", "page":{ "list":[ {
{
"result":{
"grid":{
"javaClass":"com.company.collections.GridSummary",
"page":{
"list":[
{
"javaClass":"com.company.services.issue.IssueSummary",
"sprintName":"",
"assignedTo":"dannyd",
"numChildren":-2147483648,
"startDate":{
"javaClass":"java.util.Date",
"time":1.302881465e12
},
"title":"QA work done on 1895747 - DD",
"hasClickPath":false,
"sprintId":"",
"productName":"",
"ownerId":"1895747",
"customFollowUp":"888-888-5555",
"assigneeFirstName":"Danny",
"lastActivityDate":{
"javaClass":"java.util.Date",
"time":1.302888278e12
},
"id":"1895885",
"global":false,
"timeSpent":0,
"assignee":{
"javaClass":"com.company.services.contact.ContactSummary",
"isSem":false,
"subType":0,
"doNotCampaign":false,
"status":0,
"rating":0,
"firstName":"Danny",
"salesProcess":{
"editable":false,
"javaClass":"com.company.modules.salesrules.SalesProcessSummary",
"rules":{
"list":[
],
"javaClass":"java.util.ArrayList"
}
},
"lastName":"D",
"doNotEmail":false,
"doNotCall":false,
"stage":0,
"isRemoved":false
},
"priority":3,
"jiraIdRemoved":false,
"read":false,
"productPlatform":"",
"filesAttached":-2147483648,
"parentId":"305599",
"type":72,
"productId":"",
"createdBy":"dannyd",
"status":2,
"productAppGroup":"",
"reporterId":"c8035a744046382000f0474c07d7ed34",
"jiraId":"",
"projectId":"",
"removed":false,
"assigneeLastName":"D",
"description":"",
"clientId":"CLIENTID",
"jiraSprintName":"",
"projectName":"",
"customFollowUpType":"Other"
}
],
"javaClass":"java.util.ArrayList"
},
"totalCount":1183
},
"javaClass":"com.company.blocks.issues.commands.SearchIssues",
"accountPlatform":"7.0"
}
}
该代码:
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
/**
*
* @author Danny
*/
public class Deserialize {
public void main() throws FileNotFoundException {
BufferedReader json = new BufferedReader(new FileReader("C:\\Users\\dannyd\\Desktop\\jsonResults.txt"));
Gson gson = new Gson();
MyContainer container = gson.fromJson(json, MyContainer.class);
}
}
class MyContainer {
private Result result = new Result();
//getters & setters
}
class Result {
private Grid grid = new Grid();
private String javaClass;
private String accountPlatform;
//getters & setters
}
class Grid {
private String javaClass;
private Page page = new Page();
private Integer totalCount;
//getters & setters
}
class Page {
private ArrayList<PageList> list;
private String JavaClass;
//getters & setters
}
class PageList {
private String javaClass;
private String sprintName;
private String assignedTo;
private Integer numChildren;
private D_DateObject startDate = new D_DateObject();
private String title;
private Boolean hasClickPath;
private String sprintId;
private String productName;
private String ownerId;
private String customFollowUp;
private String assigneeFirstName;
private D_DateObject lastActivityDate = new D_DateObject();
private String id;
private Boolean global;
private Integer timeSpent;
private Assignee assignee = new Assignee();
private Integer priority;
private Boolean jiraIdRemoved;
private Boolean read;
private String productPlatform;
private Integer filesAttached;
private String parentId;
private Integer type;
private String productId;
private String createdBy;
private Integer status;
private String productAppGroup;
private String reporterId;
private String jiraId;
private String projectId;
private Boolean removed;
private String assigneeLastName;
private String description;
private String clientId;
private String jiraSprintName;
private String projectName;
private String customFollowUpType;
//getters & setters
}
class D_DateObject {
private String javaClass;
private Integer time;
//getters & setters
}
class Assignee {
private String javaClass;
private Boolean isSem;
private Integer subType;
private Boolean doNotCampaign;
private Integer status;
private Integer rating;
private String firstName;
private SalesProcess salesProcess = new SalesProcess();
private String lastName;
private Boolean doNotEmail;
private Boolean doNotCall;
private Integer stage;
private Boolean isRemoved;
//getters & setters
}
class SalesProcess {
private Boolean editable;
private String javaClass;
private Rules rules;
//getters & setters
}
class Rules {
private AList list = new AList();
private String javaClass;
//getters & setters
}
class AList {
}
import com.google.gson.gson;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.util.ArrayList;
/**
*
*@作者丹尼
*/
公共类反序列化{
public void main()引发FileNotFoundException{
BufferedReader json=new BufferedReader(新文件阅读器(“C:\\Users\\dannyd\\Desktop\\jsonResults.txt”);
Gson Gson=新的Gson();
MyContainer容器=gson.fromJson(json,MyContainer.class);
}
}
类霉菌容器{
私有结果=新结果();
//接球手和接球手
}
班级成绩{
私有网格=新网格();
私有字符串类;
私有字符串平台;
//接球手和接球手
}
类网格{
私有字符串类;
私有页面=新页面();
私有整数totalCount;
//接球手和接球手
}
类页{
私有数组列表;
私有字符串类;
//接球手和接球手
}
类页面列表{
私有字符串类;
私有字符串名称;
分配给的私有字符串;
私人整数子女;
private D_DateObject startDate=新的D_DateObject();
私有字符串标题;
私有布尔路径;
私有字符串ID;
私有字符串产品名称;
私有字符串所有者ID;
私有字符串跟踪;
私有字符串assigneeFirstName;
私有D_DateObject lastActivityDate=新D_DateObject();
私有字符串id;
私有布尔全局;
私有整数时间开销;
私人受让人=新受让人();
私有整数优先级;
删除私有布尔值;
私有布尔读取;
私有字符串平台;
附加的私有整数文件;
私有字符串parentId;
私有整数类型;
私有字符串productId;
创建的私有字符串;
私有整数状态;
私有字符串productAppGroup;
私有字符串reporterId;
私用字符串;
私有字符串投影;
删除私有布尔值;
私有字符串assigneeLastName;
私有字符串描述;
私有字符串clientId;
私有字符串jiraSprintName;
私有字符串projectName;
私有字符串customFollowType;
//接球手和接球手
}
类D_DateObject{
私有字符串类;
专用整数时间;
//接球手和接球手
}
类别受让人{
私有字符串类;
私有布尔isSem;
私有整数子类型;
私人布朗诺运动;
私有整数状态;
私人整数评级;
私有字符串名;
私有SalesProcess SalesProcess=新SalesProcess();
私有字符串lastName;
私人信件;
私有布尔不呼叫;
私有整数级;
删除私有布尔值;
//接球手和接球手
}
类销售过程{
私有布尔可编辑;
私有字符串类;
私人规则;
//接球手和接球手
}
课堂规则{
私有列表=新列表();
私有字符串类;
//接球手和接球手
}
阶级主义者{
}
似乎gson并没有在任何类中设置任何变量。我做错什么了吗?JSON正在从不同的位置检索,我无权更改它。提前感谢您的帮助。我尝试了您的示例代码,发现了两个错误
然后使用您的对象(使用gson 1.7.1)解析该对象。尝试验证上述JSON表明它无效-这可能是错误的原因吗?(请尝试此处:)感谢您查看JSON(以及JSON验证工具的链接),我一定是输入错误了。。。我现在已经更新并验证了JSON仍然正确,但是我仍然无法从任何类中获取任何变量。
public static void main(String[] args) throws FileNotFoundException {
BufferedReader json = new BufferedReader(new FileReader("jsonResults.txt"));
Gson gson = new Gson();
MyContainer container = gson.fromJson(json, MyContainer.class);
}
class D_DateObject {
private String javaClass;
private float time; // this needed to be changed
//getters & setters
}