2016-04-21 82 views
1

我準備從json使用ObjectMapper的Java對象。這裏是json數據如何編寫解碼器從日期到日期在smooks java到java

"dateTimeSent" : "LongValue" 

源和目標這兩個java類都有字段是java.util.Date類型。 我試圖這樣

<jb:value property="dtSent" data="dateTimeSent" decoder="Date"> 
     <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam> 
</jb:value> 

在文檔中提到,從字符串java.util.Date用於編碼/解碼該解碼器的映射。我需要爲此編寫自定義解碼器嗎?如果是,請讓我知道如何寫。我是新來的傻瓜。

回答

0

由於smooks將字符串編碼/解碼爲java.util.Date/java.sql.Date/ java.util.Calendar/java.sql.Time/java.sql.Timestamp。我的用例,我不得不從日期解碼。所以,我已經建立了源類多一個變量,setter和getter一樣 - private String modeifiedDateTimeSent

我與modifiedDateTimeSent變量映像Smooks中-config.xml中

<jb:value property="dtSent" data="modeifiedDateTimeSent" decoder="Date"> 
    <jb:decodeParam name="format">yyyy-MM-dd HH:mm:ss</jb:decodeParam> 
</jb:value> 

接下來,我必須設置的值映射Java類A到B類

Date modifiedDtTimeSent = order.getLr().getAdminSection().getDateTimeSent(); 
    String modifiedDtTimeSentString = getDateAsString(modifiedDtTimeSent,"yyyy-MM-dd HH:mm:ss"); 
    object.setModifieddatetimesent(modifiedDtTimeSentString); 

然後才終於變量,做你的Smooks Java到Java皈依 -

 Smooks smooks = new Smooks("smooks-config.xml"); 
     ExecutionContext executionContext = smooks.createExecutionContext(); 
     JavaSource source = new JavaSource(object); 
     JavaResult result = new JavaResult(); 
     smooks.filterSource(executionContext, source, result); 
     ConvertedClass cc = (IimLocalResponse) result.getBean("xyz"); 

希望這會有所幫助。