无法使用Scala Circle json库中的LocalDateTime的自定义解码器反序列化对象

达里尔

我试图将自定义反序列化器添加到LocalDateTime对象的case类,但是它从circe-java8模块中提取了默认的反序列化器如果您删除此模块,则代码将无法编译(找不到用于的反序列化器LocalDateTime

sbt

"io.circe" %% "circe-core" % circeVersion,
"io.circe" %% "circe-generic" % circeVersion,
"io.circe" %% "circe-parser" % circeVersion,
"io.circe" %% "circe-optics" % circeVersion,
"io.circe" %% "circe-java8" % circeVersion,

以及带有自定义LocalDateTime序列化器/反序列化器的源代码

case class A(
  date: LocalDateTime,
)

object A {
  val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
  implicit val dateEncoder = Encoder.encodeString.contramap[LocalDateTime](_.format(formatter))
  implicit val dateDecoder = Decoder.decodeString.emap[LocalDateTime](str => {
    Either.catchNonFatal(LocalDateTime.parse(str, formatter)).leftMap(_.getMessage)
  })
}

如何应用自定义解串器LocalDateTime的对象指定对象A,以A案例类?

拉斯夫

使用半自动推导A

import io.circe.generic.semiauto._

case class A(
  date: LocalDateTime,
)

object A {
  val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
  implicit val dateEncoder = Encoder.encodeString.contramap[LocalDateTime](_.format(formatter))
  implicit val dateDecoder = Decoder.decodeString.emap[LocalDateTime](str => {
    Either.catchNonFatal(LocalDateTime.parse(str, formatter)).leftMap(_.getMessage)
  })
  implicit val AEncoder = deriveEncoder[A]
  implicit val ADecoder = deriveDecoder[A]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用自定义转换器从流中反序列化Json

使用自定义反序列化器 Jackson 将 .json 文件转换为 Java 对象

使用Jackson自定义JSON反序列化

JSON.Net无法在自定义JsonConverter中反序列化JSON数组

继承 NSMutableDictionary 并用 NSKeyedArchiver 序列化的自定义对象无法反序列化

杰克逊自定义反序列化器无法在春季启动中工作

使用Gson的自定义JSON反序列化器

使用 JQuery 序列化和反序列化自定义对象数组

如何使用自定义JsonConverter在Json.NET中仅反序列化子对象?

在 Ruby 中不使用 OpenStruct 将 JSON 反序列化为自定义对象

使用JsonConverter在C#中自定义JSON反序列化

使用Jackson的自定义JSON序列化/反序列化

自定义JSON编码器引发“对象无法JSON序列化”错误

Jackson JSON无法使用自定义根名称反序列化元素数组?

使用Jackson进行自定义反序列化:扩展默认反序列化器

无法在Gson自定义反序列化器中初始化Android.Util.Pair

如何使用Circe的手动解码器反序列化非固定的json数组?

对接口集合进行反序列化时,使用自定义转换器对以前的数据模型进行JSON的反序列化失败

使用自定义格式的引用时,如何使用Json.NET通过引用反序列化对象?

使用 System.Text.Json 自定义反序列化 - 将字段分组为对象

Spring Boot - 使用自定义对象数组 JSON 序列化自定义对象

Scala jackson - 自定义反序列化器不兼容类型

使用Json.NET为具有多个值类型的字段自定义反序列化器

如何使用XmlSerializer在C#中反序列化期间将xml属性转换为自定义对象

Scala 中的 DSE 5.0 自定义编解码器 - Intellij 无法编译

自定义或提供提示,以允许Spring MongoTemplate使用最终成员反序列化对象

C# Newtonsoft 使用声明反序列化自定义对象?

如何使用Import-CliXml反序列化自定义类对象的通用列表?

使用自定义XmlSerialization反序列化复杂对象