我(斯卡拉初学者)正在寻找,但我找不到一个合适的方式来解决这个下面的问题。比较一个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