我序列化和反序列化使用以下杰克逊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);
的对象A的原始值反序列化无论是弦乐,双打,长裤还是布尔人。但是,在序列化和反序列化过程中,Jackson将Long值(例如4)转换为Integers。
如何“强制”杰克逊将数字非十进制值反序列化为Long而不是Integer?
相关:http://stackoverflow.com/questions/3140760/how-to-deserialize-and-cast-to-long-all-numbers – Bozho
当心,你可能不反序列化的Javascript大长值完全相同,因为Javascript数字总是64位浮点(仅)52位尾数。 –