【发布时间】:2011-11-11 02:45:22
【问题描述】:
我正在使用 Jackson 1.8.3 将以下域对象序列化和反序列化为 JSON
public class Node {
private String key;
private Object value;
private List<Node> children = new ArrayList<Node>();
/* getters and setters omitted for brevity */
}
然后使用以下代码对对象进行序列化和反序列化
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(destination, rootNode);
然后用反序列化
mapper.readValue(destination, Node.class);
对象的原始值是字符串、双精度、长整型或布尔值。但是,在序列化和反序列化期间,Jackson 将 Long 值(例如 4)转换为整数。
如何“强制”Jackson 将数字非十进制值反序列化为 Long 而不是 Integer?
【问题讨论】:
-
请注意,您可能不会完全反序列化 Javascript 中的大长值,因为 Javascript 数字始终是 64 位浮点数,(仅)52 位尾数。