我有一个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) }