Spray json marshalling -
i'm on quest create json api of models nicely generalized. i'm newbie in spray, started out spike on simplified example.
however can't figure out going on bellow code...
i have imported both
- my custom implicits and
- spray.httpx.sprayjsonsupport._
as understand have in order have implicit in scope can convert jsonformat marshaller.
compiler error:
testservice.scala:15: not find implicit value parameter um: spray.httpx.unmarshalling.fromrequestunmarshaller[my.company.test[my.company.x]]
code:
package my.company  import spray.routing.httpservice import spray.json.{jsvalue, jsobject, jsonformat, defaultjsonprotocol}   trait testservice extends httpservice {    import my.company.testimplicits._   import spray.httpx.sprayjsonsupport._    val test =     path("test") {       post {         entity(as[test[x]]) {           test => {             complete(s"type: ${test.common}")           }         }       }     } }  trait common {   def commondata: string }  case class x(id: long, commondata: string) extends common case class y(commondata: string) extends common  case class test[t <: common](comment: string, common: t)  object testimplicits extends defaultjsonprotocol {    implicit val xformat = jsonformat2(x)   implicit val yformat = jsonformat1(y)    implicit val ytestformat: jsonformat[test[y]] = new jsonformat[test[y]] {     def write(test: test[y]) = jsobject()     def read(js: jsvalue) = test("test", y("y"))   }    implicit val xtestformat: jsonformat[test[x]] = new jsonformat[test[x]] {     def write(test: test[x]) = jsobject()     def read(js: jsvalue) = test("test", x(1l, "y"))   } } i appreciate help. in advance.
solved
solution (as @jrudolp suggested) both to:
- move implicit definitions on top of file (surprising)
- create rootjsonformat rather jsonformat.
 
 
  
Comments
Post a Comment