>我在写入方法中将对象解析为 Json,但出现错误JsonValidationError(List(error.expect.jsobject(
override def writes(o: UploadedFile): JsValue = JsObject(
Seq("path" -> JsString(o.path.toString), "content" -> JsString(Json.stringify(Json.toJson(o.content))))
)
UploadedFile.fileContent - 是 UploadedFile 的对象,并具有自己的隐式格式化程序,
final case class UploadedFileContent(content: String)
object UploadedFileContent {
implicit val uploadedFileContentFormat: OFormat[UploadedFileContent] = Json.format[UploadedFileContent]
}
和上传的文件格式程序:
object UploadedFile {
implicit object UploadedFileFormat extends Format[UploadedFile] {
override def reads(json: JsValue): JsResult[UploadedFile] =
JsSuccess(
UploadedFile(Paths.get((json "path").as[String]), (json "content").as[UploadedFileContent])
)
override def writes(o: UploadedFile): JsValue = JsObject(
Seq("path" -> JsString(o.path.toString), "content" -> JsString(Json.stringify(Json.toJson(o.content))))//error is smw here
)
}
}
也许我需要一些东西而不是 Json.stringify(Json.toJson(o.content(( 在我的写作方法中,但我不知道到底是什么。尝试了很多变体
如果UploadedFile
是案例类:
implicit val format: OFormat[UploadedFile] = Json.format
implicit lazy val UploadedFileFormat: OFormat[UploadedFile] = {
((JsPath "path").format[Path] ~ (JsPath "content")
.format[UploadedFileContent])(UploadedFile.apply, unlift(UploadedFile.unapply))
}