Java 如何在spark JSON中不跳过空值?

Java 如何在spark JSON中不跳过空值?,java,scala,apache-spark,jackson,Java,Scala,Apache Spark,Jackson,我有一个DF,我正试图在模式中解析它。但是,如果对象中的任何值为null,则用于创建模式的类将跳过 例如: case class Parent( Version: Int, Info: InfoInstance ) 嵌套类如下所示: case class InfoInstance(

我有一个DF,我正试图在模式中解析它。但是,如果对象中的任何值为null,则用于创建模式的类将跳过

例如:

case class Parent(
                           Version: Int,
                           Info: InfoInstance
                           )
嵌套类如下所示:

case class InfoInstance(
                          FName: String ,
                          SName: String,
                          ID: Double,
                          ErrorCode: Int
                        )
因此,如果在InfoInstance中,Fname的值为null,那么它将跳过该键,并返回为null

{ Sname: "abc", ID: 23123123, ErrorCode: 123 }
如果它为null,我希望它返回null

    { FName: null, Sname: "abc", ID: 23123123, ErrorCode: 123 }

我在spark 2.2上,因此无法使用ignoreNullFields。我还尝试使用JSONInclude.Always,但即使这样也不起作用。

好的,所以如果您有一个类属性,它的默认值为null。您可以将大多数JSON序列化程序设置为忽略或显示这些值,因为告诉您对象为null是多余的。如果你没有给它一个值,它当然是。如果它不在JSON中,则当您反序列化时,它会在对象中获取它的默认值。出于同样的原因,智能序列化程序不会费心序列化为零的整数

我在谷歌上搜索过,似乎过去有人回答过这个问题


不过,同样,在JSON中添加null是多余的,不会增加任何价值。

感谢您的回复。我已经看到了这个答案,但是它与我的场景不匹配,因为我正在映射到一个现有的模式。但是这个值是空的,即使它不在JSON中。默认为空。我链接到一个代码解决方案来添加空值,如果您想在那里看到它们。。。。。。。