问题标签 [jackson2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
474 浏览

java - 自定义 UnmodifiableSetMixin 在 Jackson 2.7+ 中失败

我希望能够在UnmodifiableSet启用默认类型的情况下反序列化。为此,我创建了一个UnmodifiableSetMixin如下所示的:

注意:您可以在https://github.com/rwinch/jackson-unmodifiableset-mixin找到一个包含所有源代码的最小项目来重现此问题

然后我尝试使用它来反序列化一个空集。

测试通过 Jackson 2.6,但使用 Jackson 2.7+ 失败,堆栈跟踪如下:

谁能帮我修复 Jackson 2.7+ 的测试(我希望它适用于 Jackson 2.8.3)?

0 投票
1 回答
110 浏览

android - 在 Android 中使用 Jackson 转换器

我有一个像这样的 json 响应

但我想以这种方式

我有第一个 json 响应的 POJO。第二个包含具有相同公司名称的项目。如何将其转换为第二个?

0 投票
1 回答
762 浏览

json - Jackson 如何从具有 oneOf 的 json 模式生成 pojo

这个 json 模式的 Java 类是什么?当我生成类时,类中没有像街道地址这样的属性

0 投票
1 回答
13191 浏览

java - java.lang.NoSuchMethodError 使用 Jackson 核心流 API

我正在使用 Jackson Core 2.8.3 版,但为什么我不断收到java.lang.NoSuchMethodError?我没有使用任何其他杰克逊的模块,只是核心(流)API

堆栈跟踪

0 投票
1 回答
417 浏览

java - 将 Java 对象传递给 RESTful 服务

我将一个 Java 对象传递给一个接受 json 的 Web 服务,使用HttpURLConnection. 采用com.fasterxml.jackson将对象转换为 json 字符串,然后将其写入输出流,该服务适用于简单的虚拟 POJO,但是当我使用我最初打算发送的复杂对象时应用程序中断,控制台充满StackOverflow 之类的异常和无休止的混乱

在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:690) 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)

常见的解决方案就像用 json 注解对类进行注解。有没有其他方法可以解决它,比如使用不同的 accept:content-type 用于 Web 服务(除了 json 或 xml,因为它们需要带注释的对象)或类似的?

0 投票
1 回答
1020 浏览

serialization - 如何为 spring-data-rest 和我的 @RestController 类编写单个 objectMapper

我为我的实体编写了一个 UnwrappingBeanSerializer。目前这个序列化程序是使用ConfigureJacksonObjectMapper注册的

该序列化程序适用于从 spring-data-rest 生成的 REST API。但是我@RestController对同一个实体有一个自定义,但是它不知道在 spring-data-rest 配置中注册的序列化程序。

我想UnwrappingBeanSerializer在 spring-data-rest API 和我的自定义控制器中序列化我的响应。

如何做到这一点?

我也尝试过@JsonSerialize我的实体类。但我无法为unWrappingBeanSerializerwith创建 beanBeanSerializerBase

0 投票
3 回答
17888 浏览

java - Jackson , java.time , ISO 8601 , 无毫秒序列化

我正在使用 Jackson 2.8,并且需要与不允许在 ISO 8601 时间戳内毫秒数的 API 进行通信。

预期的格式是这样的:"2016-12-24T00:00:00Z"

我正在使用 Jackson 的 JavaTimeModule 并WRITE_DATES_AS_TIMESTAMPS设置为false.

但这将打印毫秒。

所以我尝试使用objectMapper.setDateFormatwhich 并没有改变任何东西。

我目前的解决方法是这样的:

我正在覆盖适用的默认序列化程序Instant.class


有没有什么好方法使用一些配置参数来解决这个问题?

0 投票
1 回答
1126 浏览

spring - 杰克逊配置使用rabbitmq中的记录列表

我正在使用 spring boot amqp,我将在其中使用队列中的 Employee 对象列表。我的侦听器方法如下所示:

但是,当我尝试使用该消息时,我得到一个类转换异常:由于某种原因,我得到了一个 LinkedHashMap。

如果我将侦听器方法更改为使用单个员工对象,则它可以正常工作,并且我正在使用以下杰克逊配置:

我需要做一些其他杰克逊配置来使用员工对象列表吗?

非常感谢!

我将使用的示例输入 Json 消息:

0 投票
1 回答
2122 浏览

java - Jackson JsonNode 序列化

我正在使用带有 Java 8 函数的AWS Lambda 。Lambda 有一个内置的 Jackson Serializer,因此当您的方法返回一个对象时,它会将其序列化为 JSON 表示。

我有一个由以下属性组成的对象:

为简单起见,我省略了该类的所有其余部分,但它具有 getter / setter 等。

通常,当我在本机应用程序中运行它时,它可以完美运行。树JsonNode结构呈现为 JSON。例如:

但是,由于某些未知原因,当我在 Lambda 中运行它时,实际的 JsonNode 对象本身(不是树,而是包装器对象)被序列化。所以我得到了这个:

是否有人对为什么会发生这种情况有任何见解以及对解决方案/解决方法的任何建议?

更新:

我专门使用 JsonNode 因为modelandfield是动态的并且在运行时提供。所以我不会提前知道结构。

0 投票
0 回答
564 浏览

java - 列表的杰克逊 SimpleAbstractTypeResolver

我有一个由需要使用 Jackson 反序列化的接口组成的对象。由于系统的设计,我无法在界面中指定任何注释,因此我需要将所需的解析器信息添加到ObjectMapper. 我的对象有以下内容:

现在我可以使用以下命令相对轻松地处理警报AbstractTypeResolver

这很好用。但是,Extra以相同的方式添加解析器不起作用:

关于我应该如何将其应用于列表的任何建议?