java - 在序列化我的对象时,如何强制 Jackson 将数字写成字符串

标签 java javascript json jackson

我的一个 Java 对象上有一个非常大的 ID。当 jackson 将其转换为 JSON 时,它会将其作为数字发送(例如 {"id":1000110040000000001}),但一旦它成为 javascript 对象,id 就会更改为 1000110040000000000。我读到了这个问题 here

当 id 较小时它工作正常。我的第一个想法是强制 Jackson 将所有数字转换为字符串,但我也对其他选项持开放态度。如果可能的话,我宁愿不向我的 java 对象添加 Jackson 注释。

最佳答案

Jackson-databind(至少 2.1.3)提供特殊的 ToStringSerializer。这对我有用。

@Id @JsonSerialize(using = ToStringSerializer.class)
private Long id;

关于java - 在序列化我的对象时,如何强制 Jackson 将数字写成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16052314/

相关文章:

java - 如何在没有循环的情况下从ArrayList中获取对象?

javascript - 为多对多模型创建记录 EmberJS 2.6

javascript - DataTables 在 columnDefs 完好无损的情况下启动多个子表

javascript - 使用 Angular.js 解析 JSON 中的嵌套对象数组

java - RichFaces 丰富 :panelMenu stops working when a4j:include'd

javascript - 如何从 webView.evaluateJavascript 回调返回值?

javascript - 如何向 TypeScript 中的对象添加具有值的新键?

json - 如何使用包含 bytea 字段(PostgreSQL)数据的 JSON 填充 UITableViewCell 中的 UIImage?

javascript - 按名称/键回调 json 值

java - 如何用 ASM 重命名一个类并保持在同一个类加载器中?