用linkedhashmap中的值填充数据类



我有一个linkedhashmap,具有以下形状:<String, Subject>。类Subject有以下字段:

class Subject {
var name: Boolean? = null
var lastname: Boolean? = null
var location: Boolean? = null
..
}

final_result = 
"admin" -> Subject
"customer" -> Subject
etc.

我需要填充格式如下的数据类:

data class SubjectSummary(
val admin: SubjectData,
val customer: SubjectData
...
)

data class SubjectData(val details: DetailsData)

data class DetailsData(val name:String, val lastName:String ...)

因为我需要序列化SubjectSummary类并获得以下json格式:

{
"admin": {
"details": {
"name": "",
"lastname": "",
...
}
}
"customer": {
"details": {
"name": "",
"lastname": "",
...
}
}

}

我如何分配final_result映射来匹配SubjectSummary结构?我已经用简单的数据类完成了这个任务,但是当数据类中的字段是数据类时,我不确定是否填充它。指导吗?为简单起见,我只展示了一个包含几个字段的小示例。

如果您使用此转换的目标只是能够使用给定的JSON格式进行序列化,那么您不需要这个SubjectSummary类。当从初始地图转换时,Map<String, SubjectData>将足够并且可能更方便创建。

此外,DetailsData似乎包含与Subject相同的字段。如果是这样的话,也就不需要额外的类了。

所以最后似乎你只需要创建一个Map<String, SubjectData,其中SubjectData可以定义为data class SubjectData(val details: Subject)。你可以很容易地转换你的初始映射:

val transformed = finalResult.mapValues { (_, subject) -> SubjectData(subject) }

相关内容

  • 没有找到相关文章

最新更新