使用Spray json对地图进行分组的最佳情况

问题描述 投票:0回答:1

我有以下案例类行,我想进一步过滤并将其表示为json

case class Row(id: UUID, ownerId: UUID, typeId: UUID, name: String, value: String)

我想用]表示的json格式>

{
  "owner": "ownerId",
  "configurations": {
    "typeId1": {
      "name1": "value1",
      "name2": "value2"
    },
    "typeId2": {
      "name3": "value3",
      "name4": "value4"
    }
  }
}

现在我将其转换为以下结果类型

case class Data(owner: String, configurations: Map[String, Map[String, String]])

我正在使用以下功能进行上述操作

def convert(rows: Seq[Row]): Data =
  Data(owner = <SomedatabaseCall to populate this>,
       configurations = rows.groupMapReduce(_.typeId/*Actually need to populate this with a database call as well*/)(r => Map(r.name -> r.value))(_ ++ _))

我在这里有三个问题:

  1. 您如何使用spray-json封送Maps Map的Map对象,我无法清除?

  2. 现在,如果我们看到typeId实际上是一个UUID,我需要进行另一个数据库调用以找到typeName,那么最好的填充方法是使它成为我要创建的自定义json对象?

  3. 我无法使用groupMapReduce方法,因为我们使用的是2.12版本的scala,并且由于其他原因我无法升级。通过typeName

  4. 分组的任何替代方法

我有以下案例类行,我想进一步过滤并将它们表示为json案例类Row(id:UUID,ownerId:UUID,typeId:UUID,name:字符串,值:String)我想要的json格式。 ..

scala akka spray spray-json
1个回答
0
投票

我的建议:

© www.soinside.com 2019 - 2024. All rights reserved.