Jackson: treat object as primitive
我有一门课,差不多是一门关于双人间的包装课。当我通过Jackson序列化我的类时,我将收到类似于:"value":123.0的内容。我基本上希望发生的是,杰克逊只给了我123.0分。如果我可以扩展数字,我的问题就会解决,但是由于我已经扩展了另一个类,所以这不是一个选项。
班级:
1 2 3 4 5 6 7 8 9 10 |
结果:
1 2 3 | { "d" : 123.0 } |
号
预期效果如何:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
但是-你知道-我已经在扩展另一个抽象类了。我怎样才能得到expteced结果?
因为我确信有人可以重用它,所以我会回答我自己的问题(感谢加文给我指路):
1 2 3 4 5 6 7 8 9 10 11 12 |
号
您似乎希望自定义序列化,请参见此处。
首先,为类型
1 2 3 4 5 6 | public class TestValueSerializer extends JsonSerializer<TestValue> { @Override public void serialize(TestValue value, JsonGenerator gen, SerializerProvider provider) throws IOException, JsonProcessingException { gen.writeString(value.toString()); } |
}
然后在
顺便说一句,即使