playframework combinators文档引发错误:未找到-为什么?

playframework combinators文档引发错误:未找到-为什么?,playframework,playframework-2.2,Playframework,Playframework 2.2,当我尝试combinators文档中的第一个示例时,它会在repl和not found值中引发错误,play应用程序中的scala文件(使用play 2.2.0和play 2.1.1进行了尝试)-从repl回溯: Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_25). Type in expressions to have them evaluated. Type :help for

当我尝试combinators文档中的第一个示例时,它会在repl和not found值中引发错误,play应用程序中的scala文件(使用play 2.2.0和play 2.1.1进行了尝试)-从repl回溯:

Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :paste
// Entering paste mode (ctrl-D to finish)

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

val customReads: Reads[(String, Float, List[String])] = 
  (JsPath \ "key1").read[String](email keepAnd minLength(5)) and 
  (JsPath \ "key2").read[Float](min(45)) and
  (JsPath \ "key3").read[List[String]] 
  tupled


// Exiting paste mode, now interpreting.

<console>:16: error: not found: value tupled
        tupled
        ^
<console>:11: error: not found: value email
        (JsPath \ "key1").read[String](email keepAnd minLength(5)) and 
                       ^

scala> 
欢迎使用Scala 2.10.2版(Java HotSpot(TM)64位服务器虚拟机,Java 1.7.025)。
键入要计算的表达式。
键入:有关详细信息的帮助。
scala>:粘贴
//进入粘贴模式(按ctrl-D键完成)
导入play.api.libs.json_
导入play.api.libs.functional.syntax_
val customReads:Reads[(字符串、浮点、列表[字符串])]=
(JsPath\“key1”)。读取[String](电子邮件保留和最小长度(5))和
(JsPath \“key2”)。读取[Float](最小值(45))和
(JsPath\“key3”)。读取[列表[字符串]]
元组化
//正在退出粘贴模式,现在正在解释。
:16:错误:未找到:值为元组
元组化
^
:11:错误:未找到:值电子邮件
(JsPath\“key1”)。读取[String](电子邮件保留和最小长度(5))和
^
斯卡拉>
那怎么解决呢


thx有两个问题。首先,您还需要一次导入:

import play.api.libs.json.Reads._
其次,文档可能是在“minLength”和“min”等函数成为通用函数之前编写的,用于处理的不仅仅是字符串和浮点。因此,您必须为以下各项指定类型:

val customReads: Reads[(String, Float, List[String])] =
    (JsPath \ "key1").read[String](email keepAnd minLength[String](5)) and
    (JsPath \ "key2").read[Float](min[Float](45)) and
    (JsPath \ "key3").read[List[String]]
    tupled
这是我读到的讨论,我发现这方面的信息丰富:


两个问题。首先,您还需要一次导入:

import play.api.libs.json.Reads._
其次,文档可能是在“minLength”和“min”等函数成为通用函数之前编写的,用于处理的不仅仅是字符串和浮点。因此,您必须为以下各项指定类型:

val customReads: Reads[(String, Float, List[String])] =
    (JsPath \ "key1").read[String](email keepAnd minLength[String](5)) and
    (JsPath \ "key2").read[Float](min[Float](45)) and
    (JsPath \ "key3").read[List[String]]
    tupled
这是我读到的讨论,我发现这方面的信息丰富:


非常感谢您的解释和指向“play framework Google Group Discussion”的指针。非常感谢您的解释和指向“play framework Google Group Discussion”的指针