作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到当 DefaultTyping 启用了 OBJECT_AND_NON_CONCRETE
时,Jackson 库无法序列化 Scala 枚举。环境。请注意,当我使用 JAVA_LANG_OBJECT
时,序列化工作正常环境。
我看到以下异常
[scalatest] com.fasterxml.jackson.databind.JsonMappingException: Type id handling not implemented for type scala.Enumeration$Val (by serializer of type com.fasterxml.jackson.module.scala.ser.EnumerationSerializer) (through reference chain: <MyType>)
[scalatest] at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:284)
[scalatest] at com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110)
[scalatest] at com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1135)
[scalatest] at com.fasterxml.jackson.databind.JsonSerializer.serializeWithType(JsonSerializer.java:160)
[scalatest] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:706)
[scalatest] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
[scalatest] at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
[scalatest] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:292)
[scalatest] at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:2509)
[scalatest] at com.fasterxml.jackson.core.base.GeneratorBase.writeObject(GeneratorBase.java:378)
object Day extends Enumeration {
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
case class Holiday(day: Day.Value)
val objectMapper = new ObjectMapper()
objectMapper.registerModule(DefaultScalaModule)
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
objectMapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false)
objectMapper.enableDefaultTyping(DefaultTyping.OBJECT_AND_NON_CONCRETE, JsonTypeInfo.As.PROPERTY)
@JsonScalaEnumeration
如
https://github.com/FasterXML/jackson-module-scala/wiki/Enumerations 中所述,但似乎没有帮助。
最佳答案
我用这样的解决方法让它工作
object Day extends Enumeration {
type Day = Value
//val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
case class Val(dayName: String) extends super.Val
val Mon = Val("Monday")
val Tue = Val("Tuesday")
val Sat = Val("Saturday")
val Sun = Val("Sunday")
}
class DayType extends TypeReference[Day.type]
case class Holidays(@JsonScalaEnumeration(classOf[DayType]) days: Day.Val)
关于启用 DefaultTyping 时,Scala 枚举序列化使用 Jackson 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690138/
我看到了很多关于ignoring certain annotations的问题和解答,甚至禁用所有注释: .configure(MapperFeature.USE_ANNOTATIONS, false
我看到当 DefaultTyping 启用了 OBJECT_AND_NON_CONCRETE 时,Jackson 库无法序列化 Scala 枚举。环境。请注意,当我使用 JAVA_LANG_OBJEC
我刚开始使用Aqueduct创建API。 我在VS Code终端中运行 Aqueduct 服务时遇到一些错误 -- Aqueduct CLI Version: 3.2.1 -- Aqu
我已经在 CentOS 和 Ubuntu 的虚拟机环境中安装了 Apache。在这两种环境中,Apache 配置变量 DefaultType 均设置为 text/plain。 如果我有一个扩展名未知的
我是一名优秀的程序员,十分优秀!