当响应从spring-boot返回一个对象时,JSON包含所有对象属性,但是类变量不可用。我如何也可以在return json中返回静态属性?
示例类:
public class classA{
private static int var;
private string name;
private string address;
}
JSON返回为:
{ name : "", address : ""}
我要求返回的是:
{var : "", name : "", address : ""}
答案 0 :(得分:0)
静态变量未序列化,因此在反序列化期间,将从类中加载静态变量值。(将加载当前值。)
引用:are-static-variables-serialized-in-serialization-process?
答案 1 :(得分:0)
最近,我尝试了另一种方法来完成此操作,并成功了。如果有人需要,我会在这里发布。解决方案是为该类创建自定义序列化器。
@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();
}
}