2017-08-29 4 views
0

スプレーを使用してこれを逆シリアル化できません。なぜdefaultJsonプロトコルが動作しないのか理解できません。私はスカラとスプレーを初めて使用しています。私が試したスプレーjsonネストしたクラスをデシリアライズできません

Error:(55, 39) Cannot find JsonReader or JsonFormat type class for Boolean Job(fields("param1").convertTo[Boolean], Error:(55, 39) not enough arguments for method convertTo: (implicit evidence$1: spray.json.JsonReader[Boolean])Boolean. Unspecified value parameter evidence$1. Job(fields("param1").convertTo[Boolean]

case class Job(param1:Boolean,param2:String,joblist:List[JobList]) 

case class 
JobList(param3:String,param4:Option[Seq[Map[String,String]]],....,param10) 

implicit object transformJson extends JsonFormat[Job]{ 

override def read(json: JsValue): Job = json match { 
    case JsObject(fields) => 
    Job(fields("param1").convertTo[Boolean], 
     fields("param2").convertTo[String], 
     fields("jobslist").convertTo[List[JobList]] 
    ) 

    case _ => deserializationError("Not a Record") 
} 

override def write(obj: Job): JsValue = ??? 

}この最初の

object transformJson extends DefaultJsonProtocol{ 
    implicit val job=jsonFormat3(Job) 
    implicit val joblist=jsonFormat7(JobList) 

     } 

Error:(53, 39) could not find implicit value for evidence parameter of type TransformJson.JF[Array[joblist]] implicit val jobformat=jsonFormat3(Job) Error:(53, 39) not enough arguments for method jsonFormat3:

答えて

0

もちろん、私はどのように扱うか言っていませんでしたJOBLIST

case class Job(param1:Boolean,param2:String,joblist:List[JobList]) 

case class JobList(param3:String,param4:Option[Seq[Map[String,String]]],....,param10) 
object TransformJobList extends DefaultJsonProtocol { 
    implicit val joblist= jsonFormat7(JobList) 
    implicit object transformJson extends JsonFormat[Job]{ 

    override def read(json: JsValue): Job = json match { 
     case JsObject(fields) => 
      Job(fields("param1").convertTo[Boolean], 
       fields("param2").convertTo[String], 
       fields("jobslist").convertTo[List[JobList]] 
      ) 

     case _ => deserializationError("Not a Record") 
    } 

    override def write(obj: Job): JsValue = ??? 
    } 
} 
関連する問題