如何在smooks java到java的日期和日期写解码器

时间:2016-04-21 14:43:51

标签: smooks

我正在使用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的新手。

1 个答案:

答案 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);

希望这会有所帮助。