2012-12-20 48 views
-1

我有麻烦deserializiting这样的:的Java序列化GSON

{ 
    "backup_times":{ 
     "12":{ 
     "time":"2012-12-20 11:52:01", 
     "status":"T" 
     }, 
     "2":{ 
     "time":"2012-12-20 11:22:57", 
     "status":"T" 
     }, 
     "3":{ 
     "time":"2012-12-20 11:23:35", 
     "status":"T" 
     }, 
     "13":{ 
     "time":"2012-12-20 11:52:57", 
     "status":"T" 
     }, 
     "9":{ 
     "time":"2012-12-20 11:46:09", 
     "status":"T" 
     }, 
     "4":{ 
     "time":"2012-12-20 11:28:53", 
     "status":"T" 
     }, 
     "5":{ 
     "time":"2012-12-20 11:30:53", 
     "status":"T" 
     }, 
     "10":{ 
     "time":"2012-12-20 11:48:30", 
     "status":"T" 
     }, 
     "11":{ 
     "time":"2012-12-20 11:49:57", 
     "status":"T" 
     } 
    } 
} 

是这种结构有效的把它转变为一个自定义类?

这是我目前的java类,我现在有,它基本上包含一个字符串作为关键和工作的子类的值的HashMap中:

public class RestoreDatesJsonReader { 
    private HashMap<String, Job> backupTimes; 

    public static class Job { 
     private String time; 
     private String status; 
     public String getTime() { 
      return time; 
     } 
     public void setTime(String time) { 
      this.time = time; 
     } 
     public String getStatus() { 
      return status; 
     } 
     public void setStatus(String status) { 
      this.status = status; 
     } 
    } 

    public HashMap<String,Job> getBackupTimes() { 
     return backupTimes; 
    } 

    public void setBackupTimes(HashMap<String, Job> backup_times) { 
     this.backupTimes = backup_times; 
    } 
} 
+1

如果你问它是否是有效的JSON:HTTP ://jsonlint.org(是)。如果因为时间格式而遇到问题,您可能会发现这很有帮助:http://stackoverflow.com/questions/5845822/gson-deserializing-key-value-to-custom-object/5845866#5845866 –

+0

我是问问你该如何将它转化为java自定义类或bean – joze

+0

我们不打算为你完成这项工作。 [你有什么试过?](http://whathaveyoutried.com) –

回答

1

GSON(默认)依赖于具有可变名的POJO与您的JSON对象相匹配。

更改backupTimes在您的对象backup_times,这将工作得很好。

你的另一个选择是是使用@SerializedName注释为你的领域:

@SerializedName("backup_times") private HashMap<String, Job> backupTimes; 

这告诉GSON在你的JSON映射到你的POJO backupTimesbackup_times

(移动,这个从评论到一个合适的回答,一旦我有时间回去这么做)

的Javadoc在这里:http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/annotations/SerializedName.html

+0

谢谢..有帮助! – joze