【问题标题】:Validate that the values ​of List <String> exist in Json Object and return True or False验证 List <String> 的值是否存在于 Json 对象中并返回 True 或 False
【发布时间】:2020-06-17 18:55:44
【问题描述】:

我正在尝试验证props:List&lt;String&gt; 值是否与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 }

我真的不知道如何继续验证

【问题讨论】:

    标签: kotlin kotlinx.serialization


    【解决方案1】:

    不确定这是否是您要查找的内容,但这会遍历单词中的每个对象,如果消息不包含 x,则返回 false,否则返回 true。

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

    【讨论】:

    • 谢谢你,它很有帮助。
    【解决方案2】:

    除了使用循环,您还可以编写:

    fun validator(message: String, props: List<String>) =
            props.any { message.contains(it) }
    

    【讨论】:

    • 哇!这行代码如果有趣的话,我发现了几个和你类似的例子,因为我刚开始使用 kotlin,因为我会一点一点地知道如何减少代码行。也感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多