您可以在执行自己的解码之前验证对象是否不包含其他键:
import play.api.data.validation.ValidationErrordef onlyFields(allowed: String*): Reads[JsObject] = Reads.filter( ValidationError("One or more extra fields!"))(_.keys.forall(allowed.contains))或者,如果您不关心错误消息(无论如何也不是很有帮助):
def onlyFields(allowed: String*): Reads[JsObject] = Reads.verifying(_.keys.forall(allowed.contains))
然后:
implicit val stuffReads: Reads[Stuff] = onlyFields("name", "value") andThen ( (__ 'name).read[String] and (__ 'value).readNullable[Boolean])(Stuff)重复不是很好,但是可以。



