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