首页 > 解决方案 > 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)
                }



有没有更好的解决方案?
请问有什么帮助/建议吗?

标签: javaandroidsqlitekotlin

解决方案


推荐阅读