std.json.ser
JSON serialization
This module is only available if gluon is compiled with the serialization
feature.
Types
type ValueSerializer a = { serialize : a -> Result Error Value }
#[implicit]
type Serialize a = ValueSerializer a
Values
Serializes a
to a JSON without whitespace string
let { ? } = import! std.effect
let { Value, to_string, ? } = import! std.json.ser
let { Result, ? } = import! std.result
let { singleton, ? } = import! std.map
let { (<>) } = import! std.semigroup
let { assert_eq, ? } = import! std.test
seq assert_eq (to_string "string") (Ok r#""string""#)
let expected = r#"[1,2,3]"#
seq assert_eq (to_string [1, 2, 3]) (Ok expected)
let expected = r#"{"field":1}"#
assert_eq (to_string (singleton "field" 1)) (Ok expected)
let to_string_pretty v : forall a . [Serialize a] -> a -> Result Error String
Serializes a
to a JSON string
let { ? } = import! std.effect
let { Value, to_string_pretty, ? } = import! std.json.ser
let { Result, ? } = import! std.result
let { singleton, ? } = import! std.map
let { (<>) } = import! std.semigroup
let { assert_eq, ? } = import! std.test
seq assert_eq (to_string_pretty "string") (Ok r#""string""#)
let expected = r#"[
1,
2,
3
]"#
seq assert_eq (to_string_pretty [1, 2, 3]) (Ok expected)
let expected = r#"{
"field": 1
}"#
assert_eq (to_string_pretty (singleton "field" 1)) (Ok expected)