我目前正在尝试编写一个采用JSON(这里没有什么API)并验证它的方法。我想该方法看起来是这样的:字符串映射到类型
def validateJson(json, expectedType: Map[String, Type(?)], allowedVals: Map[String, Seq[expectedType(key)]]): Boolean
的问题是:我有一个方法jsonfield.validate[expectedType]
,但我不知道如何通过未知数量的与字符串相关的可用类型参数一个方法。
我很乐意使用一些运行时反射,如果这是可能的话,或任何高级功能,使这项工作很容易。任何建议感激。
PS:我用的播放框架2.6.3
编辑: 我试图使用通过类型这样
val allowed = allowedVals(field) // a Set
// if field contents contained in allowed value set...
if(allowed(field.validate[expectedType(field)].get)) foo
而是使用密封式的家庭 – cchantep