0
Scala + Playの新機能です。私はmongodbオブジェクトを作成する他のプロジェクトからコードをインポートしようとしていますが、その前にコードはJsonバリデーターを暗黙的に使用します。私のオブジェクトはValunitとCreateDatumRequestという2つのタイプから成り立っています。エラーは、 "暗黙のval createDatumRequestFmt = Json.format [CreateDatumRequest]"行にありますが、上記の行のValunitオブジェクトについては述べています。Jsonの検証エラー:マップの暗黙の書式なし
。
@Singleton
class DataController @Inject() (securityService: SecurityService) extends Controller with JsonHelpers {
.....
case class CreateDatumRequest(
name: String,
parent: Option[Datum.Id],
remarks: Option[String],
category: Tag.Id, // Datum Category tag
dict: Map[String, Option[Valunit]]) {
def validate(workspaceId: Tag.Id): Either[String, Map[DefaultModelBase.Id, BaseEntity]] = {
........
}
object CreateDatumRequest {
implicit val valunitFmt = Json.format[Valunit]
implicit val createDatumRequestFmt = Json.format[CreateDatumRequest]
}
......
}
なぜ私は "Json.format"を使用していません、それは簡単ですか?私が "implicit val createDatumRequestFmt = Json.format [CreateDatumRequest]"という行を取り除くと、私のコードがうまくコンパイルされます。私はそこに何かが間違っていると思いますCreateDatumRequest CreateDatumRequest –
問題は "dict:Map [String、Option [Valunit]]"に関連してCreateDatumRequestにあります。 –
AFAIK play-jsonはカスタムオブジェクトの読み込み/書き込みが必要です(あなたの場合はValunitです)。これを避けたい場合は、json4sを試してみてください。 –