我有一门或多或少是围绕双精度型的包装类。当我通过 Jackson 序列化我的类时,我将收到类似以下内容的信息:{“value”:123.0}。我基本上希望发生的是,杰克逊只给我 123.0.0。如果我可以扩展 Number,我的问题就会得到解决,但由于我已经扩展了另一个类,所以这不是一个选择。
Class:
@JsonIgnoreProperties(ignoreUnknown = true)
@SuppressWarnings("unused")
public class TestValue {
@JsonProperty
private final Double d;
public TestValue(Double d) {
this.d = d;
}
}
结果是:
{
"d" : 123.0
}
什么会像预期的那样工作:
public class TestValue extends Number {
private final Double d;
public TestValue(Double d) {
this.d = d;
}
public double doubleValue() {
return d;
}
public float floatValue() {
return d.floatValue();
}
public int intValue() {
return d.intValue();
}
public long longValue() {
return d.longValue();
}
public String toString() {
return d.toString();
}
}
..结果为:123.0
但是 - 你知道 - 我已经扩展了另一个抽象类。我怎样才能得到预期的结果?
因为我确信有人可以重用它,所以我将回答我自己的问题(感谢加文给我指明了道路):
public class TestValue {
private final Double d;
public TestValue(Double d) {
this.d = d;
}
@JsonValue
public Double getValue() {
return d;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)