Skip to content

[BUG]WriteNulls序列化时丢失部分null值字段 #2952

@wdollar

Description

@wdollar

问题描述

在部分字段上使用@JSONField(serializeFeatures = JSONWriter.Feature.WriteNulls)注解,序列化时无法正常序列化null值。

环境信息

  • OS信息: Windows 11 中文版 23H2 22631.4112
  • JDK信息:Temurin-17.0.12+7
  • 版本信息:Fastjson2 2.0.52

重现步骤

代码如下

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.annotation.JSONField;

import lombok.Data;

@Data
public class C {
    @JSONField(serializeFeatures = JSONWriter.Feature.WriteNulls)
    private Long l;

    @JSONField(serializeFeatures = JSONWriter.Feature.WriteNulls)
    private Double d;

    @JSONField(serializeFeatures = JSONWriter.Feature.WriteNulls)
    private Integer i;

    @JSONField(serializeFeatures = JSONWriter.Feature.WriteNulls)
    private String s;

    public static void main(String[] args) {
        System.out.println(JSON.toJSONString(new C()));
    }
}

输出结果

{"i":null,"s":null}

期待的正确结果

{"l":null,"d":null,"i":null,"s":null}

相关日志输出

附加信息

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixed

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions