问题标签 [jackson-modules]

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 投票
1 回答
481 浏览

java - 在 Jackson 2x 中的 Mapper/Package/Class 级别设置默认类型反序列化器

如果您需要一个类型的多个解串器(打包在一个或多个模块中),Jackson 如何确定哪个是该类型的主要解串器?是随机的吗?如果不是,可以通过包/类设置默认值吗?

显然,需要@JsonDeserialize(using=CustomDeserializer.class)为每个 Jackson 类指定具有给定类型的几乎每个属性是完全疯狂的——所以我假设当存在多个反序列化器时有一种方法可以设置默认值,但到目前为止还没有发现。

0 投票
1 回答
1248 浏览

java - 杰克逊反序列化因地图而失败

我创建了一个显示错误的简单测试用例。如果我错过了什么,请告诉我。

我有一个声明单个访问器的简单接口:

当我运行这个单元测试时,Jackson 无法解析 json 字符串:

正如您从堆栈跟踪中看到的那样,Jackson 正确地从 json 中提取了 contextMap 标记,但它无法继续标记字符串。据我所知,json字符串正确地代表了一张地图。

谢谢,罗宾。

0 投票
2 回答
3342 浏览

json - 如何在杰克逊 2 中进行深度合并 JSON?

我正在使用 Jersey 和 Jackson2 开发一个 Restful API。我们在开发 PUT 方法时遇到了问题。我们的 PUT 方法有点像 PATCH 方法。它只会更新请求正文中收到的属性。

我正在使用 ObjectMapper.readerForUpdating() 方法进行对象合并。但是这种方法只支持一级合并。例如:我有一个现有的 JSON 对象

然后我收到一个 JSON 对象喜欢

我希望合并的对象应该是这样的:

但结果是

第一级属性正确合并。但是对于深层次,它是在做对象替换。有没有办法进行深度合并?

0 投票
1 回答
3351 浏览

java - Jackson ObjectMapper 用方括号包裹每个元素(即使是单个值)

我有两个 Map 对象,我将它们合并到 Guava 的 Multimap 中。合并后,我试图用杰克逊序列化最终地图ObjectMapperGuavaModule否则它不能正确序列化)。但是,问题是键的每个值都被打印为列表的一个元素,即使只有一个值(objectmapper 用方括号包装每个值)。我得到的基本输出如下,

如您所见,“地址”->“城市”->“旧金山”被方括号包裹,也company -> employees被包裹了两次此外,我已经尝试过SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED, true未来但没有任何改变。

我很感激任何帮助。谢谢

0 投票
1 回答
1340 浏览

mongodb - 在 Kotlin 中,为什么杰克逊在某些情况下无法解组非注释对象而不是在其他情况下

我正在使用 Kotlin 和 Jongo 来访问 MongoDB。Jongo 使用 Jackson 序列化/反序列化对象,以便从 MongoDB 中保存和读取它们。我使用 Jackson-Kotlin 模块来帮助使用构造函数序列化 Kotlin 数据类。

这是一个可以很好地序列化的数据类的示例:

这是一个无法反序列化的类似类的示例:

Jongo 抛出以下异常,因为 Jackson 反序列化失败:

如果我像这样完全注释 Session 数据类,它确实有效:

我的问题是,为什么它适用于 Workflow?当 Session 数据类没有完全注释时,导致解组失败的细微差别是什么?

编辑

不同之处在于我测试了从 Gradle 运行它的 Workflow 测试用例,它使用了不同版本的 Kotlin,然后是我从 IDEA IDE 运行的 Session 测试用例。IDEA 的 Kotlin 插件的更新也更新了 IDEA 用来运行测试用例的 Kotlin 版本,我没有注意到。这导致 Kotlin 和 Jackson-Kotlin 库的版本不匹配。下面接受的答案指出了需要配置什么才能让事情再次运行。

0 投票
1 回答
807 浏览

java - 使用流 api 提取部分 json 字符串并转换为 jsonTree (Jackson)

我有一个嵌套的 json 结构:

我正在使用杰克逊。我只想提取有关“鲍勃”的信息并将其读入树中。我不想将整个结构读入树中(我知道该怎么做),然后提取有关 Bob 的信息。我想使用流 API(JsonParser)首先用“Bob”提取所有信息,然后将其制作成 jsontree。

我以为我会将它读入一个字节数组,然后将其转换为一棵树,如下所示:

但是,这并没有返回我想要的结果。有一个 jsonParse 异常,所以我认为这不是要走的路。

0 投票
1 回答
1205 浏览

java - 将对象编组为 CSV

我正在尝试将 an 编组Object为 csv String。我创建了一个可以将任何对象转换为 csv 的方法,String但我不断收到异常:

元帅法

主要方法

是什么导致了这个异常?

编辑这是我所有的进口:

0 投票
2 回答
821 浏览

jackson - Jackson Afterburner 模块在 Apache Karaf 3.0.5 中失败

我有一个简单的 Hello World 类型的 Karaf BundleApache ServiceMix 6.1.0使用Jackson 的 Afterburner Module在内部运行。激活码如下所示:-

pom.xml如下所示:-

我试图转换为 json 的 java 对象是一个简单的对象,如下所示:-

但是,每当我尝试安装捆绑包时,我都会遇到以下异常,并且捆绑包会陷入以下Resolved状态:-

所有必需的 Jackson 软件包都安装在 Karaf 中:-

如果我注释掉以下行,一切正常: -

有人可以让我知道我做错了什么吗?

我放在github中的所有代码。

0 投票
1 回答
7154 浏览

java - Jackson desrialize when JsonProperty is sometimes array and sometimes a single Object

I've searched Stack Overflow before posting, but there were no solutions for Jackson.

Here is a server response:

As you see property "result" is an array.

Now this is another response:

Here "result" is a single object.

This is my class I want to deserialize content to it. I wrote a custom deserializer for TObject of course:

So I assumed in my class that "result" is an array of TObjects. Now what can I do? Is using @JsonProperty("result") for two fields which one is an array of TObjects and one is a single TObject OK?

If not what else can I do?

0 投票
2 回答
2325 浏览

java - JsonMappingException:没有找到适合类型 [简单类型,类 car.Car$Parts] 的构造函数

我正在尝试将此 XML 反序列化为一个Parts对象:

汽车.java

我看不出我的代码有什么问题,为什么它一直给我以下信息?