java - Android 数据库表数据到特定模型对象
问题描述
我有带有表“数据”的sqlite数据库
uid type name value
1 abc North 10
1 abc South 0
1 abc East 0
1 abc West 0
1 abc Total 10
1 xyz Total 20
1 xyz Open 10
1 xyz Close 10
使用选择查询我可以获得这个表数据,现在我需要创建具有以下结构的响应对象
DataModel(String type, Arraylist<Data> data)
Data(String name, String value)
预期的输出 json 将是
{"data":[{"type":"abc", "values":[{"name":"North", "value":"10"}, {"name":"South ", "value":"0"}...]}, {"type":"xyz", "values":[{"name":"total", "value":"20"}, {"名称":"打开", "值":"10"}...]}]}
现在我在 android studio 中尝试了这个 kotlin 代码,它运行良好的“结果”Arraylist 包含上表数据
val dataList: ArrayList<DashboardDataModel> = ArrayList()
val typeAyyList: ArrayList<String> = ArrayList()
for(res in result){
typeAyyList.add(res.type)
}
val distinct = typeAyyList.toSet().toList()
for(type in distinct) {
val values: ArrayList<DashboardData> = ArrayList()
for (res in result) {
if (type == res.type) {
val dash=DashboardData()
dash.name=res.name
dash.value=res.value
values.add(dash)
}
}
val data = DashboardDataModel()
data.type=type
data.values=values
dataList.add(data)
}
有没有更好的解决方案?
请问有什么帮助/建议吗?
解决方案
推荐阅读
- java - 我有 32 位、64 位 Java 还是两者都有?
- java - Java 的 BigInteger 实现
- java - 如何在Java中打印球体图案的一半右侧
- javascript - 在 mysql 和 php 中导入 csv 文件时创建偏移验证
- javascript - 在画布中拖动图像 - javascript
- javascript - 我们如何在 file.txt 中找到没有 HTML 的 JavaScript 中的单词?
- spring-boot - Spring Data - 带有自定义查询(HQL)的 PagingAndSortingRepository?
- python - Python 请求模块发送连续的 post 请求
- php - PHP7.2 libsodium 似乎没有加载宏
- python - 以 10 为基数的 int() 的无效文字:'string'