问题标签 [fasterxml]

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

json - fastxml JSON 序列化:如何设置一定的字段顺序?

有没有办法为 FasterXML JSON 序列化强加某些字段顺序?例如,我需要 myObject.date 正好在前面,然后 myObject.amount 正好在后面,然后是 myObject.itemsCollection 等等。

如果没有现有的方法可以做到这一点,那么我该如何实现呢?我考虑为对象字段使用一些自定义注释,但我不知道从哪里开始,下一步该做什么......

0 投票
2 回答
9967 浏览

java - fastxml 使用 toString 序列化并使用 String 构造函数反序列化

我有一个看起来像这样的 POJO:

我想将它用作映射的键​​(例如HashMap<Thing, SomeOtherPOJO>),当序列化为 json 时,使用 Thing 的 toString() 表示作为键,而在反序列化时,使用 String 构造函数。这可以使用像杰克逊数据绑定注释这样简单的东西吗?解决这个问题的最佳方法是什么?

0 投票
1 回答
161 浏览

java - 如何在多态中使用@JsonTypeInfo 控制@class

我有一些像这样的类结构

当我使用 ObjectMapper (fasterxml) 以 JSON 格式编写 C 和 D 的实例时,D 有“@class”,而 C 没有。它符合我的期望。

但是,当我将它应用于 A 类的实例时,“@class”会显示在所有值上,即使它是 C 的实例。另一方面,我在 B 类上删除了@JsonTypeInfo,“@class”甚至不存在如果是 D 的实例。

这是我的测试代码

如何在需要时显示“@class”?

0 投票
1 回答
1248 浏览

java - Jackson FasterXML POJO 到 XML 列表

我正在使用 FasterXML Jackson 实现通过 xml-databing 包将 POJO 转换为 XML 输出。我正在尝试实现此输出:

我的课程:

和:

我正在测试它:

但输出是:

我想知道的另一件事是如何强制输出区分大小写,即大写变量名。

0 投票
4 回答
19351 浏览

java - Json(fasterxml)stackoverflow异常

尝试序列化类别时,我得到一个 stackoverflow。

例外

警告:StandardWrapperValve[dispatcher]: Servlet Dispatcher 的 Servlet.service() 在 java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 处抛出异常 java.lang.StackOverflowError org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2279) 在 org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1501) 在 org.apache.felix.framework.BundleWiringImpl。在 com.fasterxml 的 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 的 org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) 访问 $400(BundleWiringImpl.java:75)。 com 的 jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:660)。com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:100) 在 com.fasterxml.jackson.databind 上的 fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)。 ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:21) 在 com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:183) 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter。 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java: com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) 152)databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:100) 在 com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:21) 在 com.fasterxml.jackson.databind.ser。 std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:183) 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) 在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields( BeanSerializerBase.java:644) 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:100) 在 com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:21) 在 com.fasterxml.jackson.databind.ser。 std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:183) 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) 在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields( BeanSerializerBase.java:644) 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)fastxml.jackson.databind.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:183) 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) 在 com.fasterxml.jackson.databind。 ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)fastxml.jackson.databind.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:183) 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) 在 com.fasterxml.jackson.databind。 ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)

类别.java

休息控制器功能

笔记

即使我替换return new ResponseEntity<>(c,HttpStatus.OK);return new ResponseEntity<>(new Category(),HttpStatus.OK);我会得到一个stackoverflow whilist,没有一个字段包含值。

它适用于我的其他类,只有这个类会导致堆栈溢出。

0 投票
1 回答
806 浏览

spring - JsonView 注解 (fasterxml.jackson) 显示 Entity 的所有字段

我从 Springboot 开始的 Maven Spring 项目遇到了问题。我的问题是当我调用控制器的方法时,它会返回一些我不想要的字段。

例如,“Pays”(=country)与“Departement”(部门)具有 OneToMany(一个 Pays got many Departements)相关

这是我的实体:

这个控制器:

每次我去 /ws/pays/default - 并调用“getPayss()” - 它都会进行无限循环,试图调用“Pays”的“Departements”,以及每个“Departement”的“Pays”,等等...

对于这个例子,我不需要“Pays”的“Departements”,所以我可以使用@JsonIgnore,但我不想这样做,因为对于其他调用,我需要“Departement”的“Pays” "

对于此示例,是否有人有解决方案来仅获取和序列化我的对象“Pays”的“id”和“nom”?

仅供参考,这是我的实体“部门”的示例:

非常感谢

0 投票
2 回答
15974 浏览

jackson - 没有单整数参数构造函数/工厂方法

我有这个代码:

personJson就好像:

每当我的Long typeJson 中有一个,当我尝试阅读它时它就不起作用。我有这个错误:

com.fasterxml.jackson.databind.JsonMappingException:无法从整数中实例化类型 [简单类型,类 org.codehaus.jackson.generated.java.lang.Number] 的值;没有单整数参数构造函数/工厂方法

我怎样才能让它接受类型Long?映射器中是否有任何功能可以启用?

0 投票
2 回答
1427 浏览

java - FasterXML/Jackson Java 库中是否有等效于 new Gson().toJson(Object) 的方法?

我的问题非常基本:FasterXML/Jackson Java 库中是否有与new Gson().toJson(Object)等价的东西?

如果是的话,哪个性能更好?

谢谢

0 投票
0 回答
128 浏览

java - Java中的Json反序列化

我有以下结构:

当我尝试反序列化这个结构时,我有一个严重的问题。我使用 POST 方法,我不确定 Json 注释是否适用于 POST 方法,或者仅适用于 GET。我已将此抽象类更改为普通的公共类,但我仍然有无法识别的字段名称 AbstractInferDTO["infer1Name"] 的错误,而不是市场可忽略的。我使用注释 @JsonIgnoreProperties(ignoreUknown=true) 或其他方式 - objectMapper.configure(DeserializeFeature.FAIL_ON_UKNOWN_PROPERTIES, false),但没有任何效果。请问你能帮帮我吗?我没主意了。

0 投票
1 回答
461 浏览

java - 使用 fastxml 从 JSON 创建 Java 对象时出现异常

我正在尝试使用带有以下 JSON 的 fastxml 构建 Java 对象

我得到了这个例外:

地方类:

位置类:

有人可以告诉我是什么导致了这个问题吗?