假设我有这个 JSON 对象数组:
[
{"name": "foo", "tags": ["bird", "animal"], "age": 10},
{"name": "bar", "tags": ["dog", "animal"], "age": 5},
{"name": "baz", "tags": ["cat", "animal"], "age": 3}
]
如何在 ReasonML 中对此进行解码?
假设我有这个 JSON 对象数组:
[
{"name": "foo", "tags": ["bird", "animal"], "age": 10},
{"name": "bar", "tags": ["dog", "animal"], "age": 5},
{"name": "baz", "tags": ["cat", "animal"], "age": 3}
]
如何在 ReasonML 中对此进行解码?
使用bs-json将其解码为记录数组:
let data = {|[
{"name": "foo", "tags": ["bird", "animal"], "age": 10},
{"name": "bar", "tags": ["dog", "animal"], "age": 5},
{"name": "baz", "tags": ["cat", "animal"], "age": 3}
]|};
type t = {
name: string,
tags: array(string),
age: int
};
module Decode = {
let item = json =>
Json.Decode.{
name: json |> field("name", string),
tags: json |> field("tags", array(string)),
age: json |> field("age", int)
};
let all =
Json.Decode.array(item)
};
let result: array(t) =
data |> Json.parseOrRaise
|> Decode.all;