问题标签 [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 回答
587 浏览

java - Jersey 2.x ExceptionMapper 父映射

编辑:这是 ackson-jaxrs-base 早期版本中的一个问题,在 jackson-jaxrs-base-2.8 中已解决。 https://github.com/FasterXML/jackson-jaxrs-providers/issues/22

我正在努力解决这个问题,使用异常映射器。我想将 com.fasterxml.jackson.core.JsonProcessingException 的所有子项映射到一个单一的 ExceptionMapper 中。

这是我的代码:

使用以下代码可以正常工作:

编辑: JsonProcessingException 是 JsonMappingException 的父级,我到底做错了什么?

0 投票
1 回答
540 浏览

json - 用杰克逊序列化范围

我有一个Range需要以某种格式序列化的文件,即"[lower,upper)". 为此,我编写了一个基本的序列化程序:

(请注意,实际上,序列化程序处理各种可能性,Range例如关闭/打开范围,两端无限范围的可能性等,但出于我的问题的目的,这无关紧要,因此我已将其删除以保留代码简单的)。

我的问题是,通过回退到每个类的默认序列化程序,我最终会在错误的位置使用引号。例如,如果我有一个Range<String>带有条目的条目,"[foo,bar)"那么在序列化它时我会获得"["foo","bar")". 我需要在上下端点值周围不带引号的结果。

我知道额外的引号是因为gen.writeString()在底层序列化程序中没有意识到它已经在一个字符串中。有没有办法让生成器知道这一点,或者有另一种方法来实现我想要做的事情?

请注意,这Range<?>确实是通用的,因此我无法对值的序列化进行硬编码。它需要为Range<Integer>,Range<String>Range<DateTime>其他任何东西工作。

0 投票
1 回答
750 浏览

java - 是否有与 Jackson 1 的 StdSerializerProvider 等效的 Jackson 2?

我继承了一些使用 Jackson 1.9.2 的遗留代码,并希望将其升级到 Jackson 2.x。争论点之一如下:

我遇到的问题是StdSerializerProvider 存在于 Jackson 1.9.x中,但不存在于 Jackson 2.x 中。是否有一个等效的类可以保留现有行为?还是根本需要更换?

0 投票
2 回答
1645 浏览

java - 在 RESTEasy 客户端中提取 JSON 响应的特定节点

我正在使用 RESTEasy 客户端从 API 中检索 JSON 字符串。JSON 有效负载如下所示:

现在我想只提取items对象映射的节点。拦截 JSON 响应正文并将其修改items为根节点的最佳方法是什么?

我正在为我的 API 方法使用RESTEasy 代理框架

REST 客户端代码:

RESTEasy 代理接口:

0 投票
1 回答
3409 浏览

java - ObjectMapper().createObjectNode 与 JsonNodeFactory.instance.objectNode() 之间的区别?

我看到一篇关于插入新节点的帖子JsonNode并遇到了两个单独的答案,但我无法掌握两者之间的区别。

根据我的小经验,ObjectMapper不允许您创建任何东西,但ObjectNodewhileArrayNode允许JsonNodeFactory您创建一大堆节点

除此之外,还有哪些不同之处?

另外,考虑到这ObjectMapper认为是昂贵的,我想知道后一种方式是否更有效?

0 投票
2 回答
1627 浏览

java - 在 Jackson 中将 JsonNode 序列化为非常特定的 JSON 格式

我有JsonNode想要打印的结果。到目前为止,我正在使用:

输出类似:

但我需要它采用这种特定格式:

对于上下文,我正在从JSONObjectJackson 转换,因此第二个输出是由JSONObject.serialize().

另外,上面介绍的每种格式都有名称吗?它似乎遵守不同的标准。

0 投票
2 回答
2708 浏览

java - Jackson - 使用自定义 PrettyPrinter 和自定义 JsonSerializer

我正在使用 Jackson v2.8.2 将 JSON 序列化为文件。

我创建了一个自定义序列化程序并实现了serialize根据需要自定义 JSON 输出的方法。

我正在调用序列化程序,如下所示:

JSON 文件已创建,内容看起来不错。

该文件是根据格式化的,DefaultPrettyPrinter但我想使用我自己的自定义PrettyPrinter,我已经实现了。

我怎么做?

我尝试了以下方法:

但这并没有调用我的自定义打印机。

0 投票
3 回答
753 浏览

java - 具有完整 POJO 数据绑定的杰克逊自定义过滤器

这个问题扩展了这个问题

虽然如果您只有几个字段,以前的解决方案效果很好,但当您有十几个字段时,它变得无法维护。现在,我当前的设置使用完整的数据绑定,所以我有一个 POJO,Jackson 将使用它来自动反序列化 JSON。

但是,和以前一样,某些字段具有需要通过的约束。本质上,我正在寻找与此类似的答案但无需设置任何属性。只是一个自定义反序列化器,它将充当过滤器并在字段不满足约束时抛出自定义异常。如果过滤器结束时没有抛出异常,Jackson 应该自动将 JSON 绑定到 POJO。

0 投票
1 回答
10853 浏览

java - Jackson 的 @JsonTypeInfo(use = Id.CUSTOM, include = As.PROPERTY, property = "type") 读取 JSON 的所有字段,除了 "type"

我逐行浏览了每一行代码,但我认为这是 Jackson 在内部处理多态性的方式。

使用DogCat扩展的经典示例Animal

狗类:

猫类:

AnimalTypeIdResolver是一个典型的 TypeIdResolver 扩展AbstractTypeIdResolver

出于一些非常奇怪的原因,bark_decibel并且meow_level从 JSON 反序列化,但typenull. 有任何想法吗?

0 投票
2 回答
681 浏览

java - 使用 Jackson 2 解组 json 时出错

我正在尝试使用 Jackson 2 解组以下 JSON 文件:

解组几何/坐标元素时发生错误。有人可以指出错误在哪里吗?

在几何部分之前一切正常。