2013-01-07 94 views
0

所以,我想添加TIMESTAMP到一個hashmap文章。 (Rules -publish_date和expiration_date) 我使用jSon中的api編碼發佈數據到遠程服務器。將時間戳添加到散列映射。如何?

這裏的爲例向POST格式

content={ 
    "external_id": 1000, 
    "template_type_id": 103, 
    "channel_id": 226, 
    "title": "Título do Conteúdo", 
    "text": "Descrição do Conteúdo", 
    "rules": { 
     "publish_date": "2012-07-20T11:18:00-03:00", 
     "expiration_date": "2012-08-25T11:18:00-03:00", 
     "notify_publish": true, 
     "notify_expiration": false, 
     "highlighted": true 
    }, 
    "interactions": { 
     "allow_comment": true, 
     "auto_download": false 
    } 
} 

首先關閉所有我創建了一個名爲ContentDTO類,並添加它的代碼

package br.com.xxxx.xxxx; 

public class ContentDTO { 

    public ContentDTO(String external_id, Integer template_type_id, String channel_id, String title, String text, RulesDTO rules, InteractionsDTO interactions) { 
     super(); 
     this.external_id = external_id; 
     this.template_type_id = template_type_id; 
     this.channel_id = channel_id; 
     this.title = title; 
     this.text = text; 
     this.rules = rules; 
     this.interactions = interactions; 
    } 

    public ContentDTO() { 
     super(); 
    } 

    private String external_id; 

    private Integer template_type_id; 

    private String channel_id; 

    private String title; 

    private String text; 

    private RulesDTO rules; 

    private InteractionsDTO interactions; 

    public String getExternal_id() { 
     return external_id; 
    } 

    public void setExternal_id(String external_id) { 
     this.external_id = external_id; 
    } 

    public Integer getTemplate_type_id() { 
     return template_type_id; 
    } 

    public void setTemplate_type_id(Integer template_type_id) { 
     this.template_type_id = template_type_id; 
    } 

    public String getChannel_id() { 
     return channel_id; 
    } 

    public void setChannel_id(String channel_id) { 
     this.channel_id = channel_id; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getText() { 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 

    public RulesDTO getRules() { 
     return rules; 
    } 

    public void setRules(RulesDTO rules) { 
     this.rules = rules; 
    } 

    public InteractionsDTO getInteractions() { 
     return interactions; 
    } 

    public void setInteractions(InteractionsDTO interactions) { 
     this.interactions = interactions; 
    } 

} 

比,我創建了兩個,InteractionsDTO和RulesDTO。這是RulesDTO代碼。

package br.com.xxxx.xxxx; 

import java.security.Timestamp; 

public class RulesDTO { 

    public RulesDTO(Timestamp publish_date, Timestamp expiration_date, 
      Boolean notify_publish, Boolean notify_expiration, 
      Boolean highlihted) { 
     super(); 
     this.publish_date = publish_date; 
     this.expiration_date = expiration_date; 
     this.notify_publish = notify_publish; 
     this.notify_expiration = notify_expiration; 
     this.highlihted = highlihted; 
    } 

    public RulesDTO() { 
     super(); 

    } 

    public Timestamp publish_date; 

    public Timestamp expiration_date; 

    public Boolean notify_publish; 

    public Boolean notify_expiration; 

    public Boolean highlihted; 

    public Timestamp getPublish_date() { 
     return publish_date; 
    } 

    public void setPublish_date(Timestamp publish_date) { 
     this.publish_date = publish_date; 
    } 

    public Timestamp getExpiration_date() { 
     return expiration_date; 
    } 

    public void setExpiration_date(Timestamp expiration_date) { 
     this.expiration_date = expiration_date; 
    } 

    public Boolean getNotify_publish() { 
     return notify_publish; 
    } 

    public void setNotify_publish(Boolean notify_publish) { 
     this.notify_publish = notify_publish; 
    } 

    public Boolean getNotify_expiration() { 
     return notify_expiration; 
    } 

    public void setNotify_expiration(Boolean notify_expiration) { 
     this.notify_expiration = notify_expiration; 
    } 

    public Boolean getHighlihted() { 
     return highlihted; 
    } 

    public void setHighlihted(Boolean highlihted) { 
     this.highlihted = highlihted; 
    } 



} 

然後,散列圖。

HashMap<String, ContentDTO> cnt = new HashMap<String, ContentDTO>(); 

    ContentDTO contentDTO = new ContentDTO(); 
    contentDTO.setExternal_id("CNT1"); 
    contentDTO.setTemplate_type_id(103); 
    contentDTO.setChannel_id("CHN1"); 
    contentDTO.setTitle("Conteudo1"); 
    contentDTO.setText("Conteudo teste 1"); 
    RulesDTO rules = new RulesDTO(); 
    rules.setPublish_date("2012-012-28T11:18:00-03:00"); 
    rules.setExpiration_date("2013-08-25T11:18:00-03:00"); 
    rules.setNotify_publish(true); 
    rules.setNotify_expiration(false); 
    rules.setHighlihted(true); 

    contentDTO.setRules(rules); 

    InteractionsDTO interactions = new InteractionsDTO(); 
    interactions.setAllow_comment(true); 
    interactions.setAuto_downloa(false); 

    contentDTO.setInteractions(interactions); 


    cnt.put("content",contentDTO); 

但是,在publish_date和expiration_date中出現錯誤。 (RulesDTO中的方法setPublish_date(timestamp)不適用於參數(字符串))

我該怎麼辦?

謝謝轉發!

回答

1

你有

public void setPublish_date(Timestamp publish_date) { 

rules.setPublish_date("2012-012-28T11:18:00-03:00"); 

一個Timestamp不是String,你有你的"2012-012...."字符串轉換爲Timestamp對象,SimpleDateFormat.parse(...)Timestamp.valueOf(...)可以幫你 - 但請注意,您可能想而不是將12月編碼爲「012」,而是使用「12」代替...

乾杯,

+0

謝謝您的快速回答!我會馬上行動! –

1

setPublish_date(Timestamp)期望一個Timestamp不是String作爲參數。您可以將字符串轉換爲Timestamp.valueOf

rules.setPublish_date(Timestamp.valueOf("2012-01-28 11:18:00")); 
+0

謝謝!感謝您的快速幫助! –

+0

@SergioMorganti如果這解決了您的問題,請考慮[接受](http://meta.stackexchange.com/a/5235)其中一個答案。謝謝。 –