【发布时间】:2016-05-13 04:04:33
【问题描述】:
我有一个这样的案例对象列表:
AppInfo(client = "client1", project = "project1", version = "version1")
AppInfo(client = "client1", project = "project1", version = "version2")
AppInfo(client = "client2", project = "project3", version = "version1")
AppInfo(client = "client2", project = "project4", version = "version1")
并且需要做一个这样的嵌套结构:
Map(
"clients" -> List(
Map(
"name" -> "client1",
"projects" -> List(
Map(
"name" -> "project1",
"versions" -> List(
"version1",
"version2"
)
)
)
),
Map(
"name" -> "client2",
"projects" -> List(
Map(
"name" -> "project3",
"versions" -> List(
"version1"
)
),
Map(
"name" -> "project4",
"versions" -> List(
"version1"
)
)
)
)
)
)
这看起来很糟糕,但它会序列化为这个非常简单的 JSON:
{
"clients": [
{
"name": "client1",
"projects": [
{
"name": "project1",
"versions": [
"version1",
"version2"
]
}
]
},
{
"name": "client2",
"projects": [
{
"name": "project3",
"versions": [
"version1"
]
},
{
"name": "project4",
"versions": [
"version1"
]
}
]
}
]
}
有什么合理的方法可以做到这一点吗?现在我在列表中的 groupBys 中的 Maps 中有地图。
编辑
类似于 Clojure 的 Specter 库之类的东西在这里可能会有所帮助。
【问题讨论】:
标签: json scala collections group-by nested