在Scala / Play中解析JSON日期时间
发布时间:2020-12-16 08:44:02 所属栏目:安全 来源:网络整理
导读:我有以下Read定义: import org.joda.time.DateTime;implicit val userInfoRead: Reads[UserInfo] = ( (JsPath "userName").readNullable[String] and] (JsPath "startDate").readNullable[DateTime] (UserInfo.apply _) 传入以下JSON对象: "userInfo"
我有以下Read定义:
import org.joda.time.DateTime; implicit val userInfoRead: Reads[UserInfo] = ( (JsPath "userName").readNullable[String] and ] (JsPath "startDate").readNullable[DateTime] (UserInfo.apply _) 传入以下JSON对象: "userInfo" : { "userName": "joeuser","startDate": "2006-02-28" } 当我验证这些数据时,我收到以下错误: (/startDate,List(ValidationError(validate.error.expected.jodadate.format,WrappedArray(yyyy-MM-dd)))))) 关于我在格式化中缺少什么的任何建议? 解决方法
据我所知,问题可能只是Joda所期望的格式.我简化了一下,这对我有用:
scala> import org.joda.time.DateTime import org.joda.time.DateTime scala> case class UserInfo(userName: String,startDate: DateTime) defined class UserInfo scala> implicit val dateReads = Reads.jodaDateReads("yyyy-MM-dd") dateReads: play.api.libs.json.Reads[org.joda.time.DateTime] = play.api.libs.json.DefaultReads$$anon$10@22db02cb scala> implicit val userInfoReads = Json.reads[UserInfo] userInfoReads: play.api.libs.json.Reads[UserInfo] = play.api.libs.json.Reads$$anon$8@52bcbd5d scala> val json = Json.parse("""{ | "userName": "joeuser",| "startDate": "2006-02-28" | }""") json: play.api.libs.json.JsValue = {"userName":"joeuser","startDate":"2006-02-28"} scala> json.validate[UserInfo] res12: play.api.libs.json.JsResult[UserInfo] = JsSuccess(UserInfo(joeuser,2006-02-28T00:00:00.000-05:00),) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |