【发布时间】:2016-03-01 17:39:42
【问题描述】:
在 Scala 中,我有以下数据结构(Item 名称在同一个 Container 中始终是唯一的):
case class Container(content: Seq[Item])
case class Item(name: String, elements: Seq[String])
示例实例:
val container = Container(Seq(
Item("A", Seq("A1", "A2")),
Item("B", Seq("B1", "B2"))
))
我想做的是定义一个Writes[Container],它会产生以下JSON:
{
"A": ["A1", "A2"],
"B": ["B1", "B2"]
}
我猜一个可能的解决方案可能是将Container(Seq[Item]) 转换为Map[String, Seq[String]],其中每个键对应于项目的名称,值对应于项目的元素,并让 API 完成其余工作(地图可能有隐式写入,至少在读取 JSON 时是这种情况)。
但是:这种方法为每个 Container 创建一个新的 Map,除了生成 JSON 之外没有其他目的。有很多Containerinstances 需要转换为 JSON,所以我认为这种方法相当昂贵。我还能怎么做?
【问题讨论】:
标签: json scala playframework playframework-2.0