问题标签 [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.
jackson - 如何使用 Jackson 将 JSON 数组更改为 JSON 元素
Jackson 是否有一种更简单的方法来使用 Annotation 将带有列表的 java 对象反序列化为元素?
而不是这个
我要这个
jackson-databind - jackson-avro 设置字节失败
我正在使用 jackson-dataformat-avro 并在尝试在 AvroParserImpl.java 中设置字节时失败(setBytes 方法并且在 bb.remaining() 中失败,因为 byteBuffer 为空)我正在使用 2.1.1 版本的 jackson-dataformat- 中的 JsonParser avro 我是否需要在 jackson 中为 avro 字节数据类型设置任何特定的内容?任何帮助都感激不尽。
spring-mvc - Jackson JsonSerializer
我有 Jaskcon 的简单序列化程序
编译此代码后,Java 抛出错误
我正在使用这个依赖
有任何想法吗 ?
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。
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:
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"}
以下是我的代码:
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?是否有任何注释可能?
java - 如何告诉杰克逊使子元素成为顶级元素
我知道如何在 Jackson 中解包,Object
但我找不到任何关于如何解包两层的示例。
Sharepoint API EndPoints 以以下格式返回所有内容:
我尝试了以下方法,但它没有使results
value 成为顶级对象。
我如何告诉Jackson
开始将 解析results
为顶层Array
,而不必创建自定义对象层次结构,也不必编写自定义反序列化器。我有一个自定义对象,它被注释它将填充,我想要TypeSafety
所以Map<String,Object>
不是我想要的。
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
是一个.User
results
Array
在我添加接口之前,这个类和其他几个类的反序列化工作正常Identifiable<T>
,它们都因同样的异常而中断。
这不是一个abstract
类,每个方法都实现了。我想我已经把@JsonIgnore
适用的所有地方都放了。
我仍然得到那个异常,不知道如何解决它。
我有一种感觉,@JsonTypeInfo
注释中有一些东西可以解决这个问题,但是示例和 javadoc 并不是为不知道何时或如何使用注释的人编写的。