Spring Boot 在JSON返回中包含类(静态)变量

ufj5ltwl  于 2023-03-02  发布在  Spring
关注(0)|答案(2)|浏览(169)

当response从spring-boot返回一个对象时,JSON包含了所有的对象属性,但是类变量不可用。我怎样才能在return json中返回静态属性呢?
示例类:

public class classA{
    private static int var;
    private string name;
    private string address;
}

JSON返回为:

{ name : "", address : ""}

我要求,回报为:

{var : "", name : "", address : ""}
35g0bw71

35g0bw711#

    • 静态变量未序列化**,因此在反序列化期间,将从类加载静态变量值。(将加载当前值。)

参考:are-static-variables-serialized-in-serialization-process?

sgtfey8w

sgtfey8w2#

最近我尝试了一种不同的方法来做这件事,并取得了成功。我张贴在这里,如果有人需要。解决方案是创建自定义的序列化类。

@JsonSerialize(using = CustomSerializer.class)
public class classA{
    public static int var;
    private string name;
    private string address;
}

public class CustomSerializer extends StdSerializer {

    @Override
    public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("name",((A)o).getName());
        jsonGenerator.writeStringField("address",((A)o).getAddress());
        jsonGenerator.writeNumberField("var",A.var);
        jsonGenerator.writeEndObject();
    }
}

相关问题