![](/img/trans.png)
[英]Defining cross-attribute Json Validators for a case class in Play Framework 2.3.x (Scala)
[英]How to convert case class to JSON in Play framework 2.3.x (Scala)?
任何人都可以告訴我如何使用Scala將案例類類實例轉換為Play框架(特別是Play v2.3.x)中的JSON?
例如,我有這樣的代碼:
case class Foo(name: String, address: String)
def index = Action {
request => {
val foo = Foo("John Derp", "Jem Street 21") // I want to convert this object to JSON
Ok(Json.toJson(foo)) // I got error at here
}
}
錯誤消息:
無法將com.fasterxml.jackson.data bind.JsonNode的實例寫入HTTP響應。 嘗試定義一個可寫的[com.fasterxml.jackson.databind.JsonNode]
更新:我發現上面的錯誤是由於錯誤導入Json
類引起的,它應該是: import play.api.libs.json.Json
。 但是我仍然在下面的隱含問題上有錯誤。
我已經閱讀了本教程 ,但是當我嘗試隱式的Writes[Foo]
代碼時:
implicit val fooWrites: Writes[Foo] = (
(JsPath \ "name").write[String] and
(JsPath \ "address").write[String]
)(unlift(Foo.unapply))
我得到Can't resolve symbol and
Can't resolve symbol unlift
中的Can't resolve symbol unlift
錯誤。 此外,教程的代碼看起來很復雜,只是為了將對象轉換為JSON。 我想知道是否有更簡單的方法來做到這一點?
第二個問題 - Can't resolve symbol and
- 是Scala插件1.3版中引入的Intellij錯誤 。 在Scala插件的1.3.3版本中,現在有一個解決方法 - 設置首選項復選框:
語言和框架> Scala> Core(默認)選項卡>使用舊的隱式搜索算法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.