簡體   English   中英

使用JSONSerializer.toJava將json轉換為java對象后,總是獲取date字段的值作為當前日期

[英]Always getting value of date field as current date after converting json into java object using JSONSerializer.toJava

我正在使用JSONSerializer.toJava將以下json轉換為java對象。

{
    "sessionId": "d792-54fd8a87-ses-Administrator-2200-0",
    "campaignId": 2,
    "callBackTime": "2015-08-08 07:23:00",
    "isSelfCallBack": "false",
    "userId": "a1",
    "callBackHandlerType": "voice.campaign.callback.handler",
    "callBackProperties": 
     {
         "customerId": "112",
        "phone": "33334444"
     }
}

我的json配置的根類描述如下

public class ProxyAddCallbackRequestBean extends ProxySessionRequestBean {

    private static final long serialVersionUID = 1L;

    private Integer campaignId;
    private Date callBackTime;
    private boolean isSelfCallBack;
    private String userId;
    private String callBackHandlerType;
    private Map<String, String> callBackProperties;

    public Integer getCampaignId() {
        return campaignId;
    }

    public void setCampaignId(Integer campaignId) {
        this.campaignId = campaignId;
    }

    public Date getCallBackTime() {
        return callBackTime;
    }

    public void setCallBackTime(Date callBackTime) {
        this.callBackTime = callBackTime;
    }

    public boolean isSelfCallBack() {
        return isSelfCallBack;
    }

    public void setSelfCallBack(boolean isSelfCallBack) {
        this.isSelfCallBack = isSelfCallBack;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getCallBackHandlerType() {
        return callBackHandlerType;
    }

    public void setCallBackHandlerType(String callBackHandlerType) {
        this.callBackHandlerType = callBackHandlerType;
    }

    public Map<String, String> getCallBackProperties() {
        return callBackProperties;
    }

    public void setCallBackProperties(Map<String, String> callBackProperties) {
        this.callBackProperties = callBackProperties;
    }

}

轉換為Java對象后,將callBackTime值設置為當前時間,而其他字段具有正確的值。

我是JSON的新手,請您幫我找出我在哪里做錯了。

假設您使用的是json-lib ,則快速瀏覽文檔並沒有任何暗示它會將字符串自動轉換為日期的信息。 因此,您將需要解析日期。 如果您樂意加入依賴關系, Joda Time的聲譽很好。 否則,如果您期望的顯示日期是預期的,則類似於:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

public void setCallBackTime(String rawTime) {
    this.callBackTime = df.parse(rawTime);
}

應該讓您開始。 (Javadoc for SimpleDateFormat

(請注意,您所引用的日期看起來像,但不是ISO 8601)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM