避免创建几乎相同的案例类

时间:2014-11-15 00:14:49

标签: scala playframework slick shapeless

经常遇到这种情况

光滑生成的case

case class Person(firstname:String,lastname:String)
case class Address(zip:String,city:String,state:String)

通常前端JSON合约与Person一起Address。传统上要求创建一个类

case class PersonWithAddress(firstname:String,lastname:String,address:Address)

这种要求在各个委员会中很常见。

创建和维护这样的占位符类有点麻烦。任何漂亮的技巧都可以帮助创建可以JSON友好的数据结构。有没有在这里使用Shapeless的案例? (注意:使用playframework JSON lib进行JSON转换)

1 个答案:

答案 0 :(得分:0)

您可以将JSON案例类定义为case class PersonWithAddress(person: Person, address:Address),但如果您想要展平名字和姓氏(而不是将它们嵌套在子文档中),则需要编写自定义序列化程序)。

可能更多的代码而不是简单地重复一个案例类,但至少你会得到一些编译时检查,如果底层的案例类要改变(你没有与之相关)复制/粘贴案例类。)

相关问题