我正在使用ObjectMapper从json准备Java对象。这是json数据
<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类的字段都是java.util.Date类型。 我尝试过像这样的映射
$modal.open
在文档中提到这个解码器用于从String编码/解码到java.util.Date。是我需要为此编写自定义解码器。如果是,请告诉我如何写。我是smooks的新手。
答案 0 :(得分:0)
as smooks编码/解码从String到java.util.Date/java.sql.Date/ java.util.Calendar / java.sql.Time / java.sql.Timestamp。我的用例,我必须从日期到日期解码。所以我在源类中使用setter和getter创建了另一个变量,如 - java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=41, result=-1, data=Intent { dat=content://com.google.android.apps.docs.storage/document/acc=1;doc=3310 flg=0x1 }} to activity
我在smooks-config.xml
中使用modifiedDateTimeSent变量进行映射private String modeifiedDateTimeSent
接下来,我必须在将java类A映射到B类之前设置变量中的值。
<jb:value property="dtSent" data="modeifiedDateTimeSent" decoder="Date">
<jb:decodeParam name="format">yyyy-MM-dd HH:mm:ss</jb:decodeParam>
</jb:value>
然后最后,你的smooks java to java convertion -
Date modifiedDtTimeSent = order.getLr().getAdminSection().getDateTimeSent();
String modifiedDtTimeSentString = getDateAsString(modifiedDtTimeSent,"yyyy-MM-dd HH:mm:ss");
object.setModifieddatetimesent(modifiedDtTimeSentString);
希望这会有所帮助。