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

scala - java.lang.ClassNotFoundException Spark Scala

我在 scala 中有一个带有以下代码的简单 Spark 程序,但得到了异常。我想做的就是运行主代码。我还包括了 gradle 配置。任何帮助将不胜感激。

错误:-

主要的:-

build.gradle:-

}

没有其他依赖

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 投票
2 回答
5246 浏览

java - Jackson Object Mapper 以字节为单位读取值,返回所有字段初始化为 null 的对象

我正在尝试使用杰克逊对象映射器将字节数组反序列化为 java 类型。

并使用杰克逊方法,

由于我不确定字节数组包含什么对象,我希望它在它无法创建指定类型的对象时失败。但是,objectMapper 返回一个所有字段都初始化为 null 的对象。我该如何避免这种行为?

这就是我已经配置了 ObjectMapper,

0 投票
1 回答
573 浏览

json - 在jackson中序列化和反序列化时如何改变JSON节点的数据格式

我有以下传入的 json,我将其反序列化为 Model.java,然后将该 java 对象复制到 ModelView.java。我不想将日期从 String 转换为毫秒并将 Outgoing json 作为响应发送。我该怎么做?

我有特定的理由使用对象映射器将值从 Model.java 复制到 ModelView.java。所以请不要建议修改那部分。我希望通过注释来做到这一点。我很确定可以做到,但不知道怎么做。

这里提供的 json 是一个简单的。在实际场景中我有一个很大的 json。

传入的json

传出的 Json

我的控制器类

模型.java

模型视图.java

我愿意将变量名称从“日期”更改为 ModelView.java 中的其他名称,但传出的 json 应该保持不变。

0 投票
1 回答
487 浏览

angularjs - 修改消息转换器后,Jackson + Spring web 无法反序列化未引用的字符串

我有一个弹簧控制器方法,它String完全RequestBody像这样:

以前,我已经能够将“裸”字符串发布到此方法,即以字符串作为主体(而不是 json 对象)的请求。例如(来自 chrome 开发工具):

初次发帖尝试

在我尝试在我的 xml 配置文件中使用以下内容将Jackson Hibernate 4 模块添加到Jackson2ObjectMapperFactoryBean(以处理 hibernate 惰性集合)后,这停止了工作:

像这样自定义 ObjectMapper 后,我在发布上述请求时收到以下错误:

解决方法(使用角度 js)是JSON.stringify()在发布到 API 之前调用,因此角度代码变为

并且请求变为

带引号

在此之后,API 像以前一样工作,自己接受字符串。

虽然我知道没有封闭的字符串"不是有效的 JSON 字符串,但我不明白为什么在这种情况下更改 ObjectMapper bean 会产生如此大的差异?我正在使用 spring 版本 4.3.4 和 jackson 版本 2.8.5,如果这是所有有用的信息。

0 投票
0 回答
744 浏览

jackson - 为类型的包装列表注册反序列化器

我有这样的 JSON:

例如说这个Application类看起来像这样

我想将 JSON 反序列化为List<Application>,其中每个{...}都是Application. 我希望做到这一点,而不必创建一个包装类Applications,比如用 注释它@JsonRootName,然后启用DeserializationFeature.UNWRAP_ROOT_VALUE. 最终目标是拥有一个Retrofit接口,它具有以下内容:

我试图实现一个简单的JsonDeserializer(可能会被优化):

我看不到任何方法可以为此特定类型注册此反序列化器。我试过这个:

但这失败了:

我正在使用以下依赖版本:

如何配置反序列化以与 a 一起正常工作List<Application>

0 投票
0 回答
54 浏览

json - Jackson JsonSchema 模块中的 ArrayItems 与 SingleItems 有什么区别?

在文档中,ArrayItems描述为

当此属性值为 jsonSchema 数组且实例值为数组时,实例数组中的每个位置必须符合该数组对应位置的 jsonSchema

并且SingleItems作为

当此属性值为 jsonSchema 且实例值为数组时,则数组中的所有项都必须根据 jsonSchema 有效。

但我真的不明白attribute valueandinstance指的是什么。如果我只想知道数组中项的数据类型,我应该使用哪一种?

0 投票
1 回答
3019 浏览

spring-boot - 如何在测试中禁用 JsonProperty 或 JsonIgnore

如果有办法禁用@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)@JsonIgnore测试?

我正在尝试测试我的createUser()但我需要user.getPassword()在解析我的User对象时启用方法。

如果我评论该@JsonProperty行它有效,但如果我这样做,密码字段将在GET /users or GET /users/{id}方法中返回。

这是我的测试

创建新用户的方法:

这是它在序列化User对象后得到的 json ObjectMapper

UserController.class 方法

用户类属性

这是解决方法吗?

0 投票
1 回答
646 浏览

json - 默认情况下停止 jackson-scala-module 序列化所有字段

使用DefaultObjectMapperfrom jackson-scala-module,在以下示例中,在 Scala 版本field 序列化,但在 Java 版本中不序列化。设置com.fasterxml.jackson.databind.MapperFeature.AUTO_DETECT_FIELDS没有效果。

我希望没有字段被序列化,除非一个字段用com.fasterxml.jackson.annotation.JsonInclude.

斯卡拉

爪哇

0 投票
1 回答
157 浏览

java - 如何将列表的 Jackson 自定义反序列化器添加到模块?

我有一个自定义反序列化器

}

然后我需要将其添加到杰克逊映射器模块

我试过了

但这没有用。

TypeFactory 是正确的方法还是反序列化器定义的问题?

我不想使用注释,所以这是我知道的唯一其他方法。我不想将功能直接添加到对象映射器,因为我将有很多自定义反序列化,并且我想将所有代码隐藏在模块中。

提前致谢