问题标签 [bs-json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
842 浏览

json - 将 JSON 字段转换为 ReasonML 变体

我有一个 JSON 结构,其中包含一个period可以是对象或字符串的字段。我的代码中已经准备好变体,并且工作正常:

问题是当我尝试将输入 JSON 转换为变体类型时:我根本不知道该怎么做。这是我的尝试的样子:

现在,这当然行不通,因为我正在尝试匹配仍然属于 my 一部分的类型的东西Js.Json.tStringperiodVariant我不知道如何实现我想要的。

0 投票
1 回答
253 浏览

reason - 使用 bs-json 在 root 中使用动态键解码对象

我正在尝试将以下 JSON 对象解码为 Reason 对象。

{"AAPL":{"price":217.36}}

对象根中的键是动态的。

以下一般示例在密钥不在根目录中时有效。我将如何更改它以使其适用于根目录中的动态键?

0 投票
1 回答
97 浏览

module - Json.Decode.{} 是什么意思?点花括号部分

我正在尝试学习 ReasonML 并按照 bs-json 的示例,我们可以将原始 json 解码为如下类型:

我有点困惑这Json.Decode.{ ... }是什么。我知道我们可以使用点括号将范围打开到模块.()中,但我以前没有见过这个点花括号。

0 投票
2 回答
288 浏览

json - 如何在 ReasonML 中解码 GeoJson?

请评论如何在 ReasonML 中解码 GeoJson 文件?我尝试在解码器中解码没有“字段纬度和经度”的坐标,但我找不到任何信息如何解析 JSON 文件中的字段坐标。

GeoJson 文件

ReasonML 中的 JsonDecoder (bs-json)

0 投票
1 回答
358 浏览

reason - 如何将 Js.Json.t 转换为 Js.t('a)?

我已经通过 bs-json 编码了一个对象,并希望使用 bs-axios 通过 post 将其作为数据发送。

p |> Data.encodeToBuyListItem是红色的。如何将该Js.Json.t值用作发布请求的数据?

编辑:

好吧,这行得通:

但我更喜欢非hacky解决方案(最好使用bs-json,因为我正在使用它来解码JSON)......

0 投票
1 回答
84 浏览

reason - 如何在 ReasonML 中读取带有未知键的 JSON?

我正在编写一个简单的应用程序,显示来自Dog API的狗图像。我用 bs-json 把它做成记录,以后再用。品种列表可通过 API 获取。响应看起来像这样。

所以密钥在编译时是未知的。如果我一个一个添加,那将是某种硬编码。我只想要品种而不是亚品种。如果可能的话,我想要一个数组。

0 投票
1 回答
44 浏览

json - 有没有办法使用 bs-json 对大于 32 位的整数值进行编码?

我一直在使用字符串来表示大于 32 位的解码 JSON 整数。似乎string_of_int能够处理大整数输入。所以一个解码器,编写(在 Json.Decode 命名空间中):

成功处理至少 37 位的整数。

另一方面,编码对我来说很麻烦。远程服务器不接受字符串表示,并且需要一个 int64。是否可以bs-json支持int64类型?我希望可以使这样的事情起作用:

不得不滚动我自己的编码器并不像解码器那样强大,但是......我宁愿不这样做。

0 投票
0 回答
38 浏览

json - 如何解码类似的 JSON 结构?

我正在使用@glennsl 的bs-json模块来解码一些 JSON 响应,但是所有 JSON 响应除了它们独特的有效负载之外还有一些公共字段。此外,JSON 响应(通过 XMLHTTPRequest)根据它们是否成功而有所不同:它们不包含该'body元素。

我想知道是否有一种方法可以创建方法来采用通用格式的解码器。我的想法是这样的:

有没有办法在reasonml中制作模板方法?或者,应该只将类型包装'body在一个option元素中并optional()field()调用中使用?