问题标签 [jackson-databind]

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 回答
23 浏览

jackson - 如何使用 Jackson 将 JSON 数组更改为 JSON 元素

Jackson 是否有一种更简单的方法来使用 Annotation 将带有列表的 java 对象反序列化为元素?

而不是这个

我要这个

0 投票
1 回答
526 浏览

java - Java - 将嵌套的 json 反序列化为对象

我在反序列化一些嵌套的 Json 时遇到问题。

json:这里的 JSON 链接

反序列化:

和两个类:

我收到了这个异常:

有什么建议么?

0 投票
0 回答
26 浏览

jackson-databind - jackson-avro 设置字节失败

我正在使用 jackson-dataformat-avro 并在尝试在 AvroParserImpl.java 中设置字节时失败(setBytes 方法并且在 bb.remaining() 中失败,因为 byteBuffer 为空)我正在使用 2.1.1 版本的 jackson-dataformat- 中的 JsonParser avro 我是否需要在 jackson 中为 avro 字节数据类型设置任何特定的内容?任何帮助都感激不尽。

0 投票
1 回答
463 浏览

spring-mvc - Jackson JsonSerializer

我有 Jaskcon 的简单序列化程序

编译此代码后,Java 抛出错误

我正在使用这个依赖

有任何想法吗 ?

0 投票
0 回答
626 浏览

java - 使用 jackson 对 java.lang.object 进行 Json 反序列化返回 java.lang.ArrayList

我有一个带有通用方法的Java类。

使用 Jackson 2.8.4 使用启用了 DefaultTyping (mapper.enableDefaultTyping()) 的映射器对 JSON 格式的对象进行序列化和反序列化。尝试使用通用版本的 getBody 方法检索消息正文部分时遇到问题。获取 java.util.ArrayList 类型的对象,而不是传递的实际对象类型。关于缺少映射器配置或任何其他内容的任何建议?

Message.getBody 被调用如下。

添加导致问题的 JSON。

0 投票
1 回答
275 浏览

java - Need to change my code to generate Correct JSON from Java Object - Jackson

I have following result for the query select * from student where courseName = 'Science';

Results:

StudentsDetails.java:

I want to generate a JSON string like :

Part of Implementation code currently looks like :

Above code prints the wrong JSON like :

instead of

Please help me to write a good implementation code to generate the correct JSON. (Note : It is not the real code - just a sample of the real code)

In short : I want to read the entries from the database table and make it as:

0 投票
2 回答
1990 浏览

java - @JsonIgnore 和 @JsonProperty 在同一属性上

我需要基于自定义 Ignore 注释忽略我的 Json 对象中的某些属性,我只需要某个对象映射器。但是,对于其他情况,我需要 JsonProperty 注释。我正在使用 JacksonAnnotationInstrospector 来执行此操作。但是当我这样做时,两个注释都没有得到承认。

例如,我希望我的输出是这样的:

普通对象映射器:{"element3":"C","element_1":"A","element_2":"B"}

使用带有 JacksonAnnotationInstrospector 的对象映射器的预期输出:{"element_1":"A"}

我实际使用 JacksonAnnotationInstrospector 得到的输出:{"element2":"B","element_1":"A"}

以下是我的代码:

0 投票
0 回答
1157 浏览

java - 在 spring 4.x 中反序列化 UUID

我试图使用 UUID 作为请求参数之一。这会导致异常 NoSuchMethodException: java.util.UUID 采取的步骤:

  • 使用 UUID 作为参数类型会导致异常
  • 所以我使用了字符串参数,接受 uuid 作为字符串值
  • 使用 UUID.fromString() 方法获取 UUID,然后在代码中使用它,如下所示
  • 但是我注意到jackson-databind-2.5.5 jar 中已经有UUIDDeserializer类
  • 对于没有公共默认构造函数的 java8 LocalDate 类观察到类似的问题,该构造函数可以使用 json mixins 解决,但 UUID 具有与 LocalDate 不同的反序列化器

如何让spring自动从字符串创建UUID并获取UUID对象,而不必手动扩展StdDeserializer?是否有任何注释可能?

0 投票
2 回答
1052 浏览

java - 如何告诉杰克逊使子元素成为顶级元素

我知道如何在 Jackson 中解包Object但我找不到任何关于如何解包两层的示例。

Sharepoint API EndPoints 以以下格式返回所有内容:

我尝试了以下方法,但它没有使resultsvalue 成为顶级对象。

我如何告诉Jackson开始将 解析results为顶层Array ,而不必创建自定义对象层次结构,也不必编写自定义反序列化器。我有一个自定义对象,它被注释它将填充,我想要TypeSafety所以Map<String,Object>不是我想要的。

0 投票
1 回答
1764 浏览

java - 杰克逊反序列化实现接口的对象并忽略接口属性

我有一个带注释的类,它实现了一个带有一个名为通用的只读属性的接口,因此我可以在程序的其他部分中.id()提取不同类型的id 。

杰克逊应该忽略整个界面。但相反,我收到以下错误消息:

java.util.concurrent.ExecutionException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 无法构造实例my.company.Identifiable(没有创建者,如默认构造,存在):抽象类型要么需要映射到具体类型,具有自定义反序列化器,要么在 [Source: UNKNOWN; 行:-1,列:-1](通过参考链java.util.HashSet[0]:)

在搜索该异常以及谷歌的整个前两页时,我已经尝试了这里找到的所有解决方案。他们都没有解决我遇到的确切问题,我无法从其中任何一个中插入针对我的具体问题的解决方案,CustomDeserializer除了我不想写的。

我尝试过使用JsonTypeInfo,但我以前从未使用过该注释,并且无法弄清楚我应该用它做什么。使用的解决方案与我的略有不同,他们实际上想要接口属性而不是忽略它。

在某些类中没有实际的id成员变量,它只是method返回一些被认为是id程序的另一部分的东西。ID<String>在某些情况下和ID<Integer>其他情况下。

我试过用 和 注释,@JsonProperty(access = Access.READ_ONLY)@JsonIgnore它们@JsonIgnoreProperties({"id"})都没有改变异常。我也试过所有的mode设置@JsonCreator,都没有。

接口定义为:

示例类定义为:

这是绑定代码的样子:

在这种情况下,在哪里并且V是一个.UserresultsArray

在我添加接口之前,这个类和其他几个类的反序列化工作正常Identifiable<T>,它们都因同样的异常而中断。

这不是一个abstract类,每个方法都实现了。我想我已经把@JsonIgnore适用的所有地方都放了。

我仍然得到那个异常,不知道如何解决它。

我有一种感觉,@JsonTypeInfo注释中有一些东西可以解决这个问题,但是示例和 javadoc 并不是为不知道何时或如何使用注释的人编写的。

我错过了什么?