检查 JSON 中是否出现枚举标识符集?

问题描述 投票:0回答:1

我有一个枚举类,例如:

enum class MimeType(val value: String, val priority: Int) {
    PNG("PNG", 1),
    GZIP("GZIP", 2),
    TEXT("TEXT", 3),
    Unknown("null", Int.MIN_VALUE)
}

以及该枚举的示例集:

val mimeTypeSet = setOf(MimeType.PNG, MimeType.GZIP)

此外,我还有一个 JSON 对象,其中包含一个对象数组,每个对象都有一个“名称”标识符:

"documentProfile": {
            "types": [{
                "name": "png",
                "title": "Picture1",
                "description": "Picture of animal",
                "hash": fedac987343,
            }, {
                "name": "gzip",
                "title": "file1",
                "description": "document of ra",
                "hash": 8a73f43edc,
            }]
        }

我在代码中访问的内容如下:

documentProfile.types.forEach{ type ->
    type.name // iterate through png, gzip, etc.
}

那么,如果

type.name
出现在该枚举的
mimeTypeSet
中,我该如何检查它是 String 类型的“png”呢?

kotlin collections
1个回答
0
投票

您可以使用这个:

documentProfile.types.forEach { type ->
    val mimeType = mimeTypeSet.firstOrNull {
        it.value.contentEquals(type.name, true)
    }
}

mimeTypeSet.firstOrNull
返回满足后续条件的集合中的第一个条目。该条件测试枚举的
value
是否与类型的
name
相同,同时忽略大小写。

mimeType
然后包含找到的枚举,或者
null
如果没有匹配的内容。

© www.soinside.com 2019 - 2024. All rights reserved.