2016-04-21 15 views
1

Ich bereite Java-Objekt von Json mit ObjectMapper. Hier ist die JSON-DatenWie schreibe ich Decoder von Datum bis Datum in Smooks Java zu Java

Quelle und Ziel beide Java-Klassen haben Feld ist java.util.Date Typ. habe ich versucht, Kartierung ähnlichen

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

In Dokumentation wird erwähnt, dass dieser Decoder Codierungs/Decodierungs von String zu java.util.Date verwendet. Ist das, dass ich kundenspezifischen Decoder dafür schreiben muss. Wenn ja, lass es mich wissen, wie man schreibt. Ich bin neu in Smooks.

Antwort

0

Wie Smooks codieren/decodieren von String zu java.util.Date/java.sql.Date/java.util.Calendar/java.sql.Time/java.sql.Timestamp. Mein Anwendungsfall muss ich von Datum zu Datum entschlüsseln. Also habe ich eine erstellt hatte variabler in der Quellklasse mit Setter und Getter wie - private String modeifiedDateTimeSent

Ich Mapping mit modifiedDateTimeSent Variable in 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> 

Als nächstes habe ich den Wert setzen in der Variable vor Mapping Java-Klasse A bis Klasse B.

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

Dann endlich Ihre Smooks tun java java convertion -

 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"); 

Hoffe, das wird helfen.