我一直在使用字符串来表示大于 32 位的解码 JSON 整数。似乎string_of_int
能够处理大整数输入。所以一个解码器,编写(在 Json.Decode 命名空间中):
id: json |> field("id", int) |> string_of_int, /* 'id' is string */
成功处理至少 37 位的整数。
另一方面,编码对我来说很麻烦。远程服务器不接受字符串表示,并且需要一个 int64。是否可以bs-json
支持int64
类型?我希望可以使这样的事情起作用:
type myData = { id: int64 };
let encodeMyData = (data:myData) => Json.Encode.(object_([("id", int64(myData.id)]))
不得不滚动我自己的编码器并不像解码器那样强大,但是......我宁愿不这样做。