所以,我正在尝试将TIMESTAMP添加到hashmap帖子中。 (规则-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。
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)不适用于参数(字符串))
我该怎么办?
谢谢你!
答案 0 :(得分: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(...)
或{ {1}}可以帮助您 - 但请注意,您可能希望不将12月编码为&#34; 012&#34;,使用&#34; 12&#34;代替...
干杯,
答案 1 :(得分:1)
setPublish_date(Timestamp)
期望Timestamp
不是String
作为参数。您可以使用Timestamp.valueOf
rules.setPublish_date(Timestamp.valueOf("2012-01-28 11:18:00"));