gpt4 book ai didi

json - Play 日期的 : scala Json. 格式

转载 作者:行者123 更新时间:2023-12-04 18:26:25 25 4
gpt4 key购买 nike

我的 play-framework api 服务器中的 Json 转换问题已经有一段时间了,并且一直在使用繁琐的解决方法。我认为这是一个简单而普遍的问题,因此想一劳永逸地解决它,这样我就可以拥有更易于维护的代码

我需要将我的 case class 转换为 Json。我一直在硬编码一个 jsonify 函数,一个一个地返回硬编码的成员变量[如此乏味但有效]

如何为 inner case class 提供 implicit Format?我无法覆盖(并且不知道要覆盖哪种方法,尽管已经一遍又一遍地阅读相关文档)

case class CaseObject (
id: String,
title: String,
createdDate: java.util.Date // here is the problem
) {

}

object CaseObject {
// is this how to override?
// val formatter = new SimpleDateFormat("yyyy-MM-dd")
// implicit object dateWrites extends Writes[java.util.Date] {
// def writes(date: java.util.Date): JsValue = {
// JsString(formatter.format(createdDate))
// }
// }

implicit val CaseObjectFormat = Json.format[CaseObject]
implicit val CaseObjectReads = Json.reads[CaseObject]
implicit val CaseObjectWrites = Json.writes[CaseObject]
implicit val CaseObjectBson = Macros.handler[CaseObject]

// tried circe as well...
private[this] def fmt = new SimpleDateFormat("yyyy-MM-
dd'T'HH:mm:ss.SSSZZ")
implicit val config: Configuration = Configuration.default
implicit val dateEncoder: Encoder[Date] =
Encoder[String].contramap(fmt.format)
implicit val dateDecoder: Decoder[Date] =
Decoder[String].emapTry(str => Try(fmt.parse(str)))

}

请帮忙..我已经为这个微不足道的问题绞尽脑汁好几天了..在此先感谢!

最佳答案

您需要导入通用日期格式

import play.api.data.format.Formats.dateFormat

或定义custom one

implicit val format = dateFormat("yyyy-mm-dd")

关于json - Play 日期的 : scala Json. 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50184158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com