我有两条不同的骆驼路线。
1)
from(...).routeId(...)
.unmarshal().json(SomeClass.class)
....;
和2)
from(...).routeId(...)
.unmarshal(new ListJacksonDataFormat(SomeOtherClass.class))
....;
SomeClass和SomeOtherClass都有一个名为timestamp的字段,其类型为java.time.ZonedDateTime。
在第一条路线中,我传递单个对象,它解组没有错误。在第二条路线中,我传递一个对象列表,但它不起作用:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 日期/时间类型 java.time.ZonedDateTime
默认不支持:添加模块“com.fasterxml.jackson.datatype:jackson-datatype-jsr310”以启用处理
问题:
在.unmarshal(…)
之后,我计划调用.bean(…,“method”)
,其中方法以List为参数。不确定是否需要此额外信息,但添加了它以防万一。
您的第一个选项使用 xstream 库来解组 json。有关 json 方法,请参阅 javadoc。
你的第二个选择是利用Jackson
显然,您有正确的依赖项来允许xstream散集java.time.ZonedDateTime
对象,但您没有正确的依赖项来使用jackson这样做。
您可能想做一些研究,并选择您想用于json解析的库,并在整个项目中坚持使用一个库
我的DB返回给我一个重复的java对象列表,其中只有一个属性不同,即course。例如,针对1个学生:针对2个不同课程的2个学生对象。我创建了一个模型类,我想在其中填充来自DB的student对象。对于model class中的课程,我已经创建了字符串列表。
问题内容: 我有5个字段的对象: 要排序的的我写了下面。 这是在具有多个要比较的对象的对象上实现的正确方法吗? 问题答案: 您的方法可能是正确的,但是效率低下(不必要地调用equals)并且难以阅读。可以这样重写: 更好的方法是使用库方法将所有这些逻辑抽象掉,这样您就不必考虑它了。例如使用apache.commons.lang CompareToBuilder
如果我试图反序列化一个JSON字符串,该字符串缺少object类中的一个字段,那么在创建对象时,该字段将被设置为null。当发生这种情况时,我需要Jackson抛出一个异常,这样我就不必在每个对象中实现方法;即JSON字符串输入必须定义了类中的所有字段,或者抛出。 考虑到我的配置,这是可能的吗?
我想从一个对象中获得一个具有公共超级类的字段列表,然后迭代它们并执行超级类中存在的方法。示例: 所以从BasePage类,我想实现检查方法,它应该解析一个页面的字段列表,然后得到具有超级类basElement的字段列表,然后为每个启动方法存在。我确认它不是反射私人领域的复制品
首先,让我提前感谢你所有的帮助! 让我解释一下我目前的问题: 我试图用rest/json/swagger层包装一些遗留web服务调用。事实上,这些旧服务使用了一种棘手的专有xml格式,如下所示: 我能够序列化大多数对象和字段,但根标记有问题。用于序列化的主要类如下所示,但我需要根标记从“serviceId”属性中获取其值 为了实现这种复杂的自定义序列化,我在jackson XmlMapper fo