Убедитесь, что значения List <String>существуют в Json Object, и верните True или False - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь проверить, существуют ли значения props:List<String> с помощью message:String, и возвращаю, если значение истинно или ложно.

fun main() {

val message = """
            {
                "id": "xxxxx",
                "action": "Do",
                "resource": "Login",
                "type": "ok",
                "data": {
                "username": "+521234567890",
                "password": "12345"
            }
            }"""
val words = listOf("dog","flower","cat")
messageValidator(message,words)}


fun validator(message:String, props:List<String>):Boolean{

val words = props.iterator()
val messagejson = Json.parseJson(message).jsonObject


for(x in words){
    //println(x)
    //val dataWords = messagejson.containsKey(x)
    val dataWords = messagejson.containsKey(x)
    //println(dataWords)
    if (dataWords == true){
        println(x)
        return true
    }
    if (!dataWords){
        println(x)
        return false
    }
}
return false }

Я действительно не знаю, как продолжить проверку

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Вместо al oop вы также можете написать:

fun validator(message: String, props: List<String>) =
        props.any { message.contains(it) }
0 голосов
/ 17 июня 2020

Не уверен, что это то, что вы искали, но это перебирает каждый объект словами, и если сообщение не содержит x, оно возвращает false, в противном случае - true.

for(x in words){
    if(!messagejson.containsKey(x))
        return false

}
return true
}
...