scala formatter无法序列化区分大小写的json字符串

时间:2014-05-28 11:26:19

标签: 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): 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"
}

1 个答案:

答案 0 :(得分:1)

您尝试格式化的json是Int,您尝试将其作为String读取。 你应该做: 将WallpaperItem更改为tileSize:Option [Int] 或者在构造WallpaperItem对象之前将可选的Int转换为Optional String