如何为具有超过 22 个字段的案例类编写隐式写入

2024-04-06

case class Foo(
  _1:Int,_2:Int,_3:Int,_4:Int,_5:Int,
  _21:Int,_22:Int,_23:Int,_24:Int,_25:Int,
  _31:Int,_32:Int,_33:Int,_34:Int,_35:Int,
  _41:Int,_42:Int,_43:Int,_44:Int,_45:Int,
  _51:Int,_52:Int,_53:Int,_54:Int,_55:Int
)

对于这样的案例类,我需要编写隐式 json 反/序列化器。 我尝试拆分字段,并有一个 JSONFormat。但我仍然需要隐式 OWrited 来使用 Json.obj()。我也尝试过 play-json-extensions 。有任何想法吗?


这里确实有 3 个途径供您探索:

  1. 自己明确地写出每个类(是的,大量的样板文件。)
  2. 使用宏或无形的 https://github.com/milessabin/shapeless.
  3. 使用已经做过#2 的人的图书馆。

我喜欢别人为我做事。因此,考虑到这一点,#3 似乎是我首选的解决方案......你知道什么?其他人就是这样做的:播放 json 派生编解码器 https://github.com/julienrf/play-json-derived-codecs。由于它使用无形的 https://github.com/milessabin/shapeless,它将能够处理任意大小的案例类,而不仅仅是那些受 Product 限制的案例类(1-22,取决于您的 Scala 版本。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为具有超过 22 个字段的案例类编写隐式写入 的相关文章

随机推荐