首页 > 解决方案 > 如何为具有时间戳值的实体类创建 Gson 对象?

问题描述

我有一个有效负载字符串,想将其更改为实体值。有效载荷如下:

{"resultCode":"200","resultMessage":"Success","consent":[{"name":"A","sourceSystem":"IGN","updateBy":"Admin","remark":"good","version":"1.0","updateDate":1600658621871},{"name":"B","sourceSystem":"IGN","updateBy":"Admin","remark":"good","version":"2.0","updateDate":1874819158457},{"name":"C","sourceSystem":"IGN","updateBy":"Admin","remark":"good","version":"3.0","updateDate":1358819159457}]}

和实体:

public class ListConsentResponse {

    private String resultCode;
    private String resultMessage;
    private List<ConsentDTO> consent;
    public String getResultCode() {
        return resultCode;
    }
    public void setResultCode(String resultCode) {
        this.resultCode = resultCode;
    }
    public String getResultMessage() {
        return resultMessage;
    }
    public void setResultMessage(String resultMessage) {
        this.resultMessage = resultMessage;
    }
    public List<ConsentDTO> getConsent() {
        return consent;
    }
    public void setConsent(List<ConsentDTO> consent) {
        this.consent = consent;
    }
    
}
public class ConsentDTO {

    private String name;
    private String sourceSystem;
    private String updateBy;
    private String remark;
    private String version;
    private Timestamp updateDate;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSourceSystem() {
        return sourceSystem;
    }
    public void setSourceSystem(String sourceSystem) {
        this.sourceSystem = sourceSystem;
    }
    public String getUpdateBy() {
        return updateBy;
    }
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getVersion() {
        return version;
    }
    public void setVersion(String version) {
        this.version = version;
    }
    public Timestamp getUpdateDate() {
        return updateDate;
    }
    public void setUpdateDate(Timestamp updateDate) {
        this.updateDate = updateDate;
    }
}

但是当我使用 GsonBuilder 解析为 json 时:

ListConsentResponse listConsentResponse = Utility.createGsonObject()
                    .fromJson(payload, ListConsentResponse.class);

我有错误:

com.google.gson.JsonSyntaxException: 1600658621871

有什么方法可以帮助我将带有时间戳值的字符串解析为实体。或者至少我可以将有效载荷中的时间戳值更改为字符串值(例如将 1600658621871 更改为“1600658621871”)。谢谢。

标签: javajson

解决方案


推荐阅读