Json 如何强制Play framework 2.4.x使用空列表序列化字段
我正在使用scala play!2.4.x并尝试对案例类进行序列化:Json 如何强制Play framework 2.4.x使用空列表序列化字段,json,playframework-2.4,play-json,Json,Playframework 2.4,Play Json,我正在使用scala play!2.4.x并尝试对案例类进行序列化: case class MyEvent( id: String, parentId: Option[ParentRef] = None, stepStatus: String = "undefined", artifacts:Seq[String] = Seq.empty, events:Seq[String] = Seq.empty ) 问题是序列化的json不包含字段工件和事
case class MyEvent(
id: String,
parentId: Option[ParentRef] = None,
stepStatus: String = "undefined",
artifacts:Seq[String] = Seq.empty,
events:Seq[String] = Seq.empty
)
问题是序列化的json不包含字段工件和事件,因为它们的默认值是空序列。接收方希望获得字段名,即使字段名为空。
我必须强制json序列化程序添加“工件”:[],“事件”:[]
在不手动编写整个格式化程序的情况下,正确的方法是什么?我有几十个字段。因此,对于2.4.x,它的工作方式如下:
case class MyEvent(
id: String,
parentId: Option[ParentRef] = None,
stepStatus: String = "undefined",
artifacts:Seq[String] = Seq(),
events:Seq[String] = Seq()
)
Seq()。我发现play json的设计有点过头了(我真的很怀念我的Java历史中的google Gson:)非常简单,而且可以正常工作。因此,对于2.4.x,它的工作方式如下:
case class MyEvent(
id: String,
parentId: Option[ParentRef] = None,
stepStatus: String = "undefined",
artifacts:Seq[String] = Seq(),
events:Seq[String] = Seq()
)
Seq()。我发现play json的设计有点过头了(我真的很怀念我的Java历史中的google Gson:)非常简单,而且可以正常工作。你能让
工件
和事件
成员选项[Seq[String]]
吗?AFAIK没有其他方法不包括手动写入读取/格式化。你是说在接收方?不,这是不可能的。当我试图复制这一点时,我似乎发现了2.3和2.4之间的一些行为差异。还不能解决。在2.3中,工件和事件最明确地存在,因此有几个问题是关于试图抑制它们。没有帮助,我知道。请告诉我们您是否解决了问题。您能否使工件
和事件
成员
选项[Seq[String]]
?AFAIK没有其他方法不包括手动写入读取/格式化。你是说在接收方?不,这是不可能的。当我试图复制这一点时,我似乎发现了2.3和2.4之间的一些行为差异。还不能解决。在2.3中,工件和事件最明确地存在,因此有几个问题是关于试图抑制它们。没有帮助,我知道。如果你决定了,请告诉我们。