2012-12-20 45 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