JSON

解析

与 JavaScript 的 JSON.parse 绑定,并注明你期望的返回值类型:

ReScriptJS Output
// declare the shape of the json you're binding to
type data = {names: array<string>}

// bind to JS' JSON.parse
@scope("JSON") @val
external parseIntoMyData: string => data = "parse"

let result = parseIntoMyData(`{"names": ["Luke", "Christine"]}`)
let name1 = result.names[0]

data 可以将 JSON 标记为你想要的任何类型。如你所见,这可以编译成一个直接的 JSON.parse 调用。就像普通的 JS 一样,这很方便,但是不能保证数据的形状正确,甚至不能保证语法上有效。这稍微有点危险。

字符串化

使用 Js.Json.stringify:

ReScriptJS Output
Js.log(Js.Json.stringifyAny(["Amy", "Joe"]))

进阶

Js.Json 模块为需要在字段级别解析 JSON 的用户提供了更安全的,低层次的构建块。更多例子详见 API 文档。