1

默认情况下,Moshi 在序列化中忽略空值,但在某些情况下,我确实想用空值序列化我的对象,我尝试为这种情况创建 @JsonQualifier,但最终结果是忽略了空值。

如何忽略序列化(toJson)中的空值但保留某些特定字段 null ?

例子

@Retention(AnnotationRetention.RUNTIME)
@JsonQualifier
annotation class KeepItNull


data class StackQuestion(val id : Int){
var question : String? = null

@KeepItNull
val answer : String? = null

}

响应应忽略“问题”并包含“答案”字段 - 如下所示:

{
 "id": 1,
 "answer": null
}
4

1 回答 1

-6

Jackson 允许在任一类级别控制此行为:

@JsonInclude(Include.NON_NULL)
public class MyDto { ... }

或者——更细化——在字段级别:

public class MyDto { 
    @JsonInclude(Include.NON_NULL)
    private String stringValue; 
    private int intValue; 
    // standard getters and setters
}
于 2019-02-28T13:42:08.723 回答