Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 通过Jackson序列化'Nothing?'属性_Kotlin_Jackson - Fatal编程技术网

Kotlin 通过Jackson序列化'Nothing?'属性

Kotlin 通过Jackson序列化'Nothing?'属性,kotlin,jackson,Kotlin,Jackson,我想通过Jackson序列化FAIL对象: 接口选项结果{ val数据:结果类型? 对象失败:OptionalResult{ 覆盖val数据:无?=null } } 我得到的是{},但我希望收到{“数据”:null} 我怎样才能固定我的物体 顺便说一下,以下对象已正确序列化: 对象失败:可选结果{ 覆盖val数据:Int?=null } 技术问题是Jackson确定将过滤掉通常指示属性(公共或带注释的setter)存在的指示符,因为getter被视为不返回任何内容的public void ge

我想通过Jackson序列化
FAIL
对象:

接口选项结果{
val数据:结果类型?
对象失败:OptionalResult{
覆盖val数据:无?=null
}
}
我得到的是
{}
,但我希望收到
{“数据”:null}

我怎样才能固定我的物体

顺便说一下,以下对象已正确序列化:

对象失败:可选结果{
覆盖val数据:Int?=null
}

技术问题是Jackson确定将过滤掉通常指示属性(公共或带注释的setter)存在的指示符,因为getter被视为不返回任何内容的
public void getData()
。 过滤是在低级处理中完成的,同时删除静态方法、既不带注释也不遵循命名约定的方法等等

由于
void
void
之间存在实际差异(类似于原语/包装器差异),因此可以改进此检测。 但这是首次报告此类使用情况


您可以尝试一件可能(也可能不)有帮助的事情:为
val数据添加
@JsonProperty
。如果只对未注释的访问器进行过滤,则可能会有所帮助。

使用
@JsonSerialize(using=MyCustomSerializer::class)注释
FAIL
对象
有效!然而,这需要额外的9行代码。是否还有其他变体,例如,以某种方式注释
数据
。可在此处找到自定义序列化程序的示例: