经常遇到这种情况
光滑生成的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转换)
答案 0 :(得分:0)
您可以将JSON案例类定义为case class PersonWithAddress(person: Person, address:Address)
,但如果您想要展平名字和姓氏(而不是将它们嵌套在子文档中),则需要编写自定义序列化程序)。
可能更多的代码而不是简单地重复一个案例类,但至少你会得到一些编译时检查,如果底层的案例类要改变(你没有与之相关)复制/粘贴案例类。)