kotlin - 使用来自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
类。从初始地图转换时,创建AMap<String, SubjectData>
就足够了,而且可能更方便。
此外,它似乎DetailsData
包含与Subject
. 如果是这种情况,也不需要额外的课程。
所以最后看起来你只需要创建一个Map<String, SubjectData
可以SubjectData
定义为data class SubjectData(val details: Subject)
. 您可以很容易地转换您的初始地图:
val transformed = finalResult.mapValues { (_, subject) -> SubjectData(subject) }
推荐阅读
- c - 如何编写与 null 语言匹配的弹性模式?
- azure-data-factory - 如何限制使用 Azure 数据工厂传输的字符数?
- python - 在一张图中绘制 2 个数据框
- optaplanner - Optaplanner 约束流加入 List 属性
- python - 在 Python3 中基于共享字典值创建分组列表
- node.js - 带脚手架的 NodeJS:如何设置开发环境?
- python - 创建一个函数来简化多个图
- java - 如何将 JSOnObject 转换为数组
- c++ - VSCode 上的 PlatformIO 未编译:collect2.exe:错误:ld 返回 1 退出状态
- typescript - typescript 的混合编译