Android 通过kotlin中的数据类创建无键字符串的Json数组

Android 通过kotlin中的数据类创建无键字符串的Json数组,android,json,kotlin,Android,Json,Kotlin,我正在通过kotlin的“data”类创建一个json请求对象。我坚持要创建一个不带键的字符串JSON数组,如下所示: "filters": { "abc": [{ "key1": "exRKxYXS5uAjW8hTs", "key2": ["Premium"]

我正在通过kotlin的“data”类创建一个json请求对象。我坚持要创建一个不带键的字符串JSON数组,如下所示:

"filters": {
                "abc": [{
                    "key1": "exRKxYXS5uAjW8hTs",
                    "key2": ["Premium"]
                }],
                "genders": ["MALE", "FEMALE"],
                "def": ["en", "fr"]
            }
在这里,我坚持使用genders和defjsonarray,我只需要在其中放入字符串,但是如何在kotlin中创建它的数据类呢。请建议


提前感谢。

使用jsonschema2pojo.com自动生成正确的类

响应类

class Response {
    @SerializedName("filters")
    @Expose
    var filters: Filters? = null
}
过滤类

class Filters {
    @SerializedName("abc")
    @Expose
    var abc: List<Abc>? = null

    @SerializedName("genders")
    @Expose
    var genders: List<String>? = null

    @SerializedName("def")
    @Expose
    var def: List<String>? = null
}
类过滤器{
@序列化名称(“abc”)
@暴露
变量abc:列表?=null
@序列化名称(“性别”)
@暴露
变量性别:列表?=null
@序列化名称(“def”)
@暴露
变量定义:列表?=null
}
Abc班

class Abc {
    @SerializedName("key1")
    @Expose
    var key1: String? = null

    @SerializedName("key2")
    @Expose
    var key2: List<String>? = null
}
Abc类{
@序列化名称(“键1”)
@暴露
变量key1:字符串?=null
@序列化名称(“键2”)
@暴露
var key2:列表?=null
}

您可以按如下方式创建相应的数据类:

//Response data class
data class Response(
    val filters: Filters?
)

//Filters data class
data class Filters(
    val abc: Abc,
    val genders: List<String> = emptyList(),
    val def: List<String> = emptyList()
)

//Abc data class
data class Abc(
    val key1: String?,
    val key2: String?
)
//响应数据类
数据类响应(
val过滤器:过滤器?
)
//过滤数据类
数据类过滤器(
美国广播公司,
val genders:List=emptyList(),
val def:List=emptyList()
)
//Abc数据类
数据类Abc(
val键1:字符串?,
val键2:字符串?
)

只要保持变量名与键名相同,就不必使用@SerializedName

这不是有效的json格式。Genders是一种列表类型。同样适用于def和钥匙2。