我正在研究在我的最新项目中使用Kotlin序列化的方法。
我需要处理的Json如下:
{
"countryCodeMapping": {
"ssd": [
{
"name": "South Sudan",
"alpha2": "ss",
"alpha3": "ssd"
}
],
"nic": [
{
"name": "Nicaragua",
"alpha2": "ni",
"alpha3": "nic"
}
],
"fin": [
{
"name": "Finland",
"alpha2": "fi",
"alpha3": "fin"
}
],
"cck": [
{
"name": "Cocos (Keeling) Islands",
"alpha2": "cc",
"alpha3": "cck"
}
],
"tun": [
{
"name": "Tunisia",
"alpha2": "tn",
"alpha3": "tun"
}
],
"uga": [
{
"name": "Uganda",
"alpha2": "ug",
"alpha3": "uga"
}
],
....
"myDescriptions": {
"1": {
"groupId": 1,
"description": "cvbxcvbxcvbxbxb",
"myTypes": [
"cxcvbxb",
"xcvxcbxxx",
"cvbxcvbxcxvcb"
]
},
"2": {
"groupId": 2,
"description": "vxvbxbxbxbx",
"myTypes": [
"xcvb",
"xcvbxcvb"
]
},
"3": {
"groupId": 3,
"description": "xcvbxcvbxcvbxcvb",
"myTypes": [
"xcvbxcvbxcvbx"
]
},
"4": {
"groupId": 4,
"description": "xcvbxcbxcvbxcb",
"myTypes": [
"xcvbxcxcvb"
]
},
"5": {
"groupId": 5,
"description": "xcvbxcvbxcvbxcvbx",
"myTypes": [
"xcvbxcvbxc",
"xcvbxcvbxcvbxb"
]
},
"6": {
"groupId": 6,
"description": "dfgsdfgsdgsdfgsdgsg",
"myTypes": [
我必须解码整个Json字符串,但是我从以下countryCodeMapping
部分开始:
@Serializable
data class Meta(
@SerialName("countryCodeMapping")
val mapping: CountryCodeMapping
)
@Serializable
data class CountryCodeMapping(val ssd: List<Country>)
@Serializable
data class Country(
@SerialName("name")
val name: String,
@SerialName("alpha2")
val alpha2: String,
@SerialName("alpha3")
val alpha3: String
)
val countryMap: Meta = Json {
isLenient = true
ignoreUnknownKeys = true
allowStructuredMapKeys = true
}.decodeFromString<Meta>(metaJson)
这个可以工作,但是我只解码了苏丹。
countryMap = Meta(mapping=CountryCodeMapping(ssd=[Country(name=South Sudan, alpha2=ss, alpha3=ssd)]))
我需要哪些数据类模型才能实现我的目标?
更新
我需要做出的更改(基于答案评论)是:
@Serializable
data class Meta(
@SerialName("countryCodeMapping")
val mapping: Map<String, List<Country>>
)
@Serializable
data class Country(
@SerialName("name")
val name: String? = null,
@SerialName("alpha2")
val alpha2: String? = null,
@SerialName("alpha3")
val alpha3: String? = null
)
Map<String, List<Country>>
еә”иҜҘдҪңдёәCountryCodeMapping
зұ»еһӢзҡ„жӣҝд»ЈпјҢе…¶дҪҷйғЁеҲҶеҸҜд»Ҙдҝқз•ҷгҖӮ - undefined