我有以下案例类行,我想进一步过滤并将其表示为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))(_ ++ _))
我在这里有三个问题:
您如何使用spray-json封送Maps Map的Map对象,我无法清除?
现在,如果我们看到typeId
实际上是一个UUID,我需要进行另一个数据库调用以找到typeName
,那么最好的填充方法是使它成为我要创建的自定义json对象?
我无法使用groupMapReduce
方法,因为我们使用的是2.12版本的scala,并且由于其他原因我无法升级。通过typeName
我有以下案例类行,我想进一步过滤并将它们表示为json案例类Row(id:UUID,ownerId:UUID,typeId:UUID,name:字符串,值:String)我想要的json格式。 ..
我的建议: