像hasmap一样将json对象解析为Kotlin数据类列表

fykwrbwg  于 2023-03-09  发布在  Kotlin
关注(0)|答案(1)|浏览(176)

我很难将一个jsonObject解析为数据类对象,我需要此对象的一个列表:

data class DataClassExample(val mandatory: Boolean,
val name: String,
val regex: String?,
val regex_check: Boolean)

我有一个json对象,其中每个列表对象都需要在一个数据类对象的列表中进行转换:

{
"defaultParameters": [
{
  "name": "business",
  "mandatory": true,
  "type": "String",
  "regex": "",
  "regex_check": true
},
{
  "name": "environment",
  "mandatory": true,
  "type": "String",
  "regex": "",
  "regex_check": true
}
],
"userParameters": [
{
  "name": "person_id",
  "mandatory": true,
  "type": "String",
  "regex": "",
  "regex_check": true
} ]

我将按objectName过滤,例如“defaultParameters”,并在数据类中转换列表,我的预期结果是:

listOf(DataClassExample(name = "", mandatory = true, type = "String", regex = "", ...), DataClassExample(...))

我尝试使用以下代码获取此值:

val response = allowList.filterKeys {
        it == "defaultParameters"
    } as MutableMap<String, String>

但我不知道如何转换这个代码在数据类列表。

0tdrvxhp

0tdrvxhp1#

我可以推荐第三方库调用Klaxon
导入并将其添加到Gradle文件:

dependencies {
    implementation 'com.beust:klaxon:5.5'
    ...
}

如果您的列表是:

val data = """[
            {
              "name": "business",
              "mandatory": true,
              "type": "String",
              "regex": "",
              "regex_check": true
            },
            {
              "name": "environment",
              "mandatory": true,
              "type": "String",
              "regex": "",
              "regex_check": true
            }
         ]"""

Parsing行将是:

Klaxon().parseArray<DataClassExample>(data)

相关问题