我目前正在嘗試編寫一個採用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