当前位置: 首页 > 知识库问答 >
问题:

我能忽略一个由杰克逊和斯普林组成的二传手吗?

谢翰学
2023-03-14

我遇到的问题是一些类是从一个有getter但没有setter的接口实现的。

我确实希望从客户端获得getter值,所以我不能使用@jsonIgnore注释,因为它会完全忽略该属性,包括序列化和反序列化。我需要序列化时的属性。

还有别的办法吗?

共有1个答案

辛弘壮
2023-03-14

可能有一个更简单的方法,但是我想把使用JSON视图作为一个可能的解决方案。这个线程上有一个例子。

对于反序列化,您可能需要一个不同的视图,而不仅仅是序列化,这将是一个Jackson2.0特性,由Spring3.2支持,并被移植到Spring3.1中。仅在序列化上使用视图是Jackson1.4以来的一个特性。

想到的另一个选项是使用自定义反序列化器。

 类似资料:
  • 问题内容: 我有以下json文件: 但是java模型如下: Jackson解析时会引发异常,因为“ externalId”字段没有getter或setter方法。有没有可以用来忽略json字段的装饰器? 问题答案: 您可以使用注释;如果这只是您要跳过的一个值,则类似于: 或忽略任何无法使用的东西: 还有其他方法可以做到这一点,其余的请查看FasterXML Jackson wiki 。

  • 我有一个带有以下注释的类: 我尝试的是忽略反序列化的json。但它不起作用。始终在 JSON 字符串到达时,Jackson lib 将填充 references 属性。如果我只使用@JsonIgnore注释,则 getter 不起作用。这个问题有什么解决方案吗? 谢啦

  • 我想知道为什么没有一种坚定的方式来与杰克逊合作。我只想解析JSON字符串: 但我真的很困惑,我应该导入什么来实现这一点。根据这个链接,我尝试导入映射器asl。jar。但我得到了这个编译错误: 然后我尝试导入jackson-core-2.4.2和jackson-databind-2.4.2。所以没有编译错误,但我得到了这个运行时异常(在映射器定义行中): 请指导我应该导入哪些内容才能使用Jackso

  • 我如何告诉Jackson忽略JSON名称? 我有以下POJO: 当我有这样的东西: “ABCName”:“foo”,然后杰克逊没有认出它抛出错误。 它期望的是: “abcName”:“foo”。 代码: 输出:{"abcname":"Foo"} 然后我试着用@JsonProperty(“ABCName”)注释ABCName 在我注释并运行代码之后,我得到的是:{“ABCName”:“Foo”,“A

  • 首先,我不熟悉Jython。我正在寻找一种将python代码集成到Java项目中的方法。因此我正在调查Jython。 我正在尝试将一个 json 字符串转换为 Java 对象 - 在 python 中。 首先,我一直在努力让Jython找到我的java类。由于缺乏更优雅的解决方案,我可以通过简单地执行以下操作来向前迈进: 无论如何。。。 我正在尝试以下操作: 但是,在运行时,我收到以下错误: 我不

  • 我想使用Spring的RestTemplate plus Jackson来使用Web服务。我已经学习了几本教程,并且已经达到了创建DAO的目的。这是我获取所有域对象的方法: 但我的Web服务不会立即返回Station对象数组,而是以这种方式返回一个更具语义的表达式: 所以我的问题是,我不知道如何“告诉”RestTemplate在“stations”指示符之后立即解析对象列表,而不创建临时对象,这似