1

POST を処理する Spray.io ディレクティブがあり、Jerkson (Jackson のスカラ インターフェイス) を使用して、着信 JSON を適切なクラスに解析したいと考えています。

post {
        path("") {
          entity(as[String]) { stuff =>
              complete {
                parse[User](stuff)
              }
          }
        }
      }

問題は、コンパイルに行くと、スプレーがマーシャラーを探しに行くことです:

    [error] C:\project\src\main\scala\com\project\AccountService\controllers\Users.scala:53: 
could not find implicit value for evidence parameter of type
 spray.httpx.marshalling.Marshaller[com.project.AccountService.models.User]
    [error]                     parse[User](stuff)
    [error]                                ^
    [error] one error found

このためにカスタム Marhsaller を作成する必要がありますか? それとも私のディレクティブが正しく書かれていませんか?そして、私がそれを必要とする場合、何か良い例はありますか?

ありがとう!

4

1 に答える 1

2

これはなんとか仕事を成し遂げることができました:

post {
        path("") {
          entity(as[String]) { body =>
            val user = parse[User](body)
                    complete(generate(user))
          }
        }
      }

文字列を返さなかったcompleteため、ユーザーオブジェクトをマーシャリングするマーシャラーを探し始めたようです。

于 2013-02-05T23:19:22.097 に答える