【发布时间】:2021-03-15 16:24:56
【问题描述】:
我一直在使用字符串来表示大于 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)]))
必须使用我自己的编码器并不像解码器那样强大,但是……我宁愿不要。
【问题讨论】:
-
@glennsl 将
external int64 : int64 -> Js.Json.t = "%identity"添加到编码器文件中是否“安全”?