JsonValidationError(List(error.expect.jsobject) 同时解析对象



>我在写入方法中将对象解析为 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))
}

最新更新