scala格式化程序无法序列化区分大小写的json字符串
我为一个读写为json的类编写了自己的play.api.libs.json.Format 我的目标是构建以下类:scala格式化程序无法序列化区分大小写的json字符串,json,scala,Json,Scala,我为一个读写为json的类编写了自己的play.api.libs.json.Format 我的目标是构建以下类: WallpaperItem(title:String, filename:String, tileSize:Option[String], url:Option[String]) JSON格式化程序如下所示: val wallpaperItemFormat= new Format[WallpaperItem] { def writes(data: WallpaperItem):
WallpaperItem(title:String, filename:String, tileSize:Option[String], url:Option[String])
JSON格式化程序如下所示:
val wallpaperItemFormat= new Format[WallpaperItem] {
def writes(data: WallpaperItem): JsValue = {
Json.obj(
"title" -> data.title,
"filename" -> data.filename,
"tileSize" -> data.tileSize,
"url" -> data.url
)}
def reads(json: JsValue): JsResult[WallpaperItem] = {
JsSuccess(new WallpaperItem(
(json \ "title").as[String],
(json \ "filename").as[String],
(json \ "tileSize").as[Option[String]],
(json \ "url").as[Option[String]]
))}
}
调试中的JSON字符串为:
{
"title": "MILANO STRIA",
"filename": "MS21-74.jpg",
"tileSize": 32,
"url": "http://www.koroseal.com/images/designs_large/MS21-74.jpg"
}
您尝试格式化的json是Int,您尝试将其读取为字符串。 你应该做: 将壁纸项目更改为具有瓷砖大小:选项[Int] 或者在构造WallperItem对象之前将可选Int转换为可选字符串