簡體   English   中英

玩! 找不到參數reducer的隱式值

[英]Play! could not find implicit value for parameter reducer

我正在跟隨Play! 2.1從海岸到海岸的教程, 網址http://mandubian.com/2013/01/13/JSON-Coast-to-Coast/,但即使最瑣碎的示例也無法正常工作。

編譯項目時出現錯誤:

找不到參數化簡器的隱式值:play.api.libs.functional.Reducer [play.api.libs.json.JsString,B]

我的控制器代碼如下:

package controllers

import play.api._
import play.api.mvc._

import play.api.libs.json._
import play.api.libs.json.Reads._
import play.api.libs.functional.syntax._

object MyController extends Controller{

  val validate = (
    (__ \ 'title).json.pick[JsString] and
    (__ \ 'desc).json.pick[JsString]
  ).reduce

  def test() = Action { implicit request =>
    Ok("test")
  }
}

我缺少什么才能使它正常工作?

這里的語法不太正確。 “ pick”返回一個JsValue(Play!等效於有效的Json類型,包括String,Array等)。

要驗證多個json字段,您需要使用“ pickBranch”,該返回一個JsObject(基本上等效於Map [String,JsValue])。 我猜到reduce是幾個JsObjects的合並操作。

實際上,我仍然沒有找到'pick'的好用例。 '\\'語法似乎以更少的代碼和混亂完成了等效的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM