0

そこで、ハッシュマップの投稿に TIMESTAMP を追加しようとしています。(ルール -publish_date および expire_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);

しかし、発行日と有効期限でエラーが発生します。(RulesDTO のメソッド setPublish_date(timestamp) は、引数 (文字列) には適用されません)

私は何をすべきか?

よろしくお願いします!

4

2 に答える 2

1

あなたが持っている

public void setPublish_date(Timestamp publish_date) {

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

ATimestampはではありません。文字列をオブジェクトStringに変換する必要があります。これは、または役立つ可能性があります。ただし、12月を「012」としてエンコードせず、代わりに「12」を使用する場合があることに注意してください。"2012-012...."TimestampSimpleDateFormat.parse(...)Timestamp.valueOf(...)

乾杯、

于 2013-01-07T11:41:00.393 に答える
1

setPublish_date(Timestamp)引数としてa 以外Timestampが必要です。String文字列を次のように変換できますTimestamp.valueOf

rules.setPublish_date(Timestamp.valueOf("2012-01-28 11:18:00"));
于 2013-01-07T11:41:38.173 に答える