我(斯卡拉初學者)正在尋找,但我找不到一個合適的方式來解決這個下面的問題。比較一個JsonArray枚舉
枚舉對象(從不改變):
object EyeColorEnum extends Enumeration{
val Blue = Value("blue")
val Brown = Value("brown")
val Gray = Value("gray")
val Green = Value("green")
}
JSON數組(情形1):
"eyeColor": ["blue", "gray", "green"]
JSON數組(情形2):
"eyeColor": []
JSON數組(case3):
"eyeColor": ["orange", "pink", "green"]
這個解決方案應該是一個json驗證字段「eyeColor」。
案例1和案例2有效。
情況3無效。
for (i <- 1 to(jsonArray.value.length - 1)) {
for (j <- 1 to(jsonArray.value.length - 1)) {
if(jsonArray(i).as[String] == enumArray(j).toString) {
// Item from A exists in B
true
} else {
// Item from A does not exist in B
checker = checker + 1
}
}
}
這些for
不工作,我希望他們如何工作。 是否有更簡單的方法來完成這項工作?
非常感謝。
難道ü意味着這樣的事情? (0 to(jsonArray.value.length - 1))。foreach {i => (0 to(enumArray.length - 1))。foreach {j => if( jsonArray(i).as [String ] == enumArray(j).toString){ found + = 1 } } – OliverKK
這就像它將代碼轉換成代碼一樣,但是您幾乎可以肯定希望的實現不應該使用foreach,而是全部和/或存在。 –
這是最好的解決方案: (for(needle < - needle if if!haystack.contains(needle))yield needle).isEmpty – OliverKK