问题标签 [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.
json - fastxml JSON 序列化:如何设置一定的字段顺序?
有没有办法为 FasterXML JSON 序列化强加某些字段顺序?例如,我需要 myObject.date 正好在前面,然后 myObject.amount 正好在后面,然后是 myObject.itemsCollection 等等。
如果没有现有的方法可以做到这一点,那么我该如何实现呢?我考虑为对象字段使用一些自定义注释,但我不知道从哪里开始,下一步该做什么......
java - fastxml 使用 toString 序列化并使用 String 构造函数反序列化
我有一个看起来像这样的 POJO:
我想将它用作映射的键(例如HashMap<Thing, SomeOtherPOJO>
),当序列化为 json 时,使用 Thing 的 toString() 表示作为键,而在反序列化时,使用 String 构造函数。这可以使用像杰克逊数据绑定注释这样简单的东西吗?解决这个问题的最佳方法是什么?
java - 如何在多态中使用@JsonTypeInfo 控制@class
我有一些像这样的类结构
当我使用 ObjectMapper (fasterxml) 以 JSON 格式编写 C 和 D 的实例时,D 有“@class”,而 C 没有。它符合我的期望。
但是,当我将它应用于 A 类的实例时,“@class”会显示在所有值上,即使它是 C 的实例。另一方面,我在 B 类上删除了@JsonTypeInfo,“@class”甚至不存在如果是 D 的实例。
这是我的测试代码
如何在需要时显示“@class”?
java - Jackson FasterXML POJO 到 XML 列表
我正在使用 FasterXML Jackson 实现通过 xml-databing 包将 POJO 转换为 XML 输出。我正在尝试实现此输出:
我的课程:
和:
我正在测试它:
但输出是:
我想知道的另一件事是如何强制输出区分大小写,即大写变量名。
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,没有一个字段包含值。
它适用于我的其他类,只有这个类会导致堆栈溢出。
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”?
仅供参考,这是我的实体“部门”的示例:
非常感谢
jackson - 没有单整数参数构造函数/工厂方法
我有这个代码:
personJson
就好像:
每当我的Long type
Json 中有一个,当我尝试阅读它时它就不起作用。我有这个错误:
com.fasterxml.jackson.databind.JsonMappingException:无法从整数中实例化类型 [简单类型,类 org.codehaus.jackson.generated.java.lang.Number] 的值;没有单整数参数构造函数/工厂方法
我怎样才能让它接受类型Long
?映射器中是否有任何功能可以启用?
java - Java中的Json反序列化
我有以下结构:
当我尝试反序列化这个结构时,我有一个严重的问题。我使用 POST 方法,我不确定 Json 注释是否适用于 POST 方法,或者仅适用于 GET。我已将此抽象类更改为普通的公共类,但我仍然有无法识别的字段名称 AbstractInferDTO["infer1Name"] 的错误,而不是市场可忽略的。我使用注释 @JsonIgnoreProperties(ignoreUknown=true) 或其他方式 - objectMapper.configure(DeserializeFeature.FAIL_ON_UKNOWN_PROPERTIES, false),但没有任何效果。请问你能帮帮我吗?我没主意了。
java - 使用 fastxml 从 JSON 创建 Java 对象时出现异常
我正在尝试使用带有以下 JSON 的 fastxml 构建 Java 对象
我得到了这个例外:
地方类:
位置类:
有人可以告诉我是什么导致了这个问题吗?