2016-10-19 8 views
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] 
    } 
...... 
} 

答えて

0

の読み取りを定義してみてください。詳しくはこちらをご覧ください。 https://www.playframework.com/documentation/2.5.x/ScalaJsonCombinators#complex-reads

+0

なぜ私は "Json.format"を使用していません、それは簡単ですか?私が "implicit val createDatumRequestFmt = Json.format [CreateDatumRequest]"という行を取り除くと、私のコードがうまくコンパイルされます。私はそこに何かが間違っていると思いますCreateDatumRequest CreateDatumRequest –

+0

問題は "dict:Map [String、Option [Valunit]]"に関連してCreateDatumRequestにあります。 –

+0

AFAIK play-jsonはカスタムオブジェクトの読み込み/書き込みが必要です(あなたの場合はValunitです)。これを避けたい場合は、json4sを試してみてください。 –

関連する問題