首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jackson:对象通过writeValueAsString:

Jackson:对象通过writeValueAsString:
EN

Stack Overflow用户
提问于 2016-07-27 14:12:59
回答 1查看 1.7K关注 0票数 2

我试图使用Jackson解析器将Java对象转换为JSON。原始对象通过protobuf提供给我,并包含一些特定于Jackson的@注释。

当我打电话给String jsonView = objectMapper.writeValueAsString(values);

我明白这个例外。对象不包含任何递归值,所以我不清楚为什么我会看到这个错误(甚至这个代码路径)。

ObjectMapper配置为:objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); (尽管删除它似乎没有改变任何事情)

com.fasterxml.jackson.databind.type.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:103) at com.fasterxml.jackson.databind.type.TypeBindings$AsKey.equals(TypeBindings.java:458) at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:940) at com.fasterxml.jackson.databind.util.LRUMap.get(LRUMap.java:68) at com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.com.fasterxml.jackson.databind.type.TypeFactory._fromParamType(TypeFactory.java:1384) at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1154) at com.fasterxml.jackson.databind.type.TypeFactory._resolveSuperInterfaces(TypeFactory.java:1298) at com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:1243) at com.fasterxml.jackson.databind.type.TypeFactory.com.fasterxml.jackson.databind.type.TypeFactory._resolveSuperInterfaces(TypeFactory.java:1298),com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:1247),com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1150),com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:618),com.fasterxml.jackson.databind。cfg.MapperConfig.constructType(MapperConfig.java:290) at com.fasterxml.jackson.databind.cfg.MapperConfig.introspectClassAnnotations(MapperConfig.java:320) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.removeIgnorableTypes(BeanSerializerFactory.java:714) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:573) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:390) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:273) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:225) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:159) at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1272) at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1243) at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:535) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.resolve(BeanSerializerBase.java:332) at com.fasterxml.jackson.databind.ser.SerializerCache.addAndResolveNonTypedSerializer(SerializerCache.java:174) at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1254) at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:535) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.resolve(BeanSerializerBase.java:332) at com.fasterxml.jackson.databind.ser.SerializerCache.addAndResolveNonTypedSerializer(SerializerCache.java:174) at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1254) at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:535) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.resolve(BeanSerializerBase.java:332) at com.fasterxml.jackson.databind.ser.SerializerCache.addAndResolveNonTypedSerializer(SerializerCache.java:197) at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1233) at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:499) at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:697) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:270) at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3672)在com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3048)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-11 12:31:12

修正了最新版本(见2.8.1或更高版本):https://github.com/FasterXML/jackson-databind/issues/1302

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38615468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档