Skip to content

JsonObject

[Source]

Immutable JSON object backed by a persistent hash map. Construction is via chained .update() calls, each returning a new object with structural sharing:

let obj = JsonObject
  .update("name", "Alice")
  .update("age", I64(30))

class val JsonObject is
  Stringable box

Implements


Constructors

create

[Source]

new val create(
  data': HashMap[String val, (JsonObject val | JsonArray val | String val | I64 val | F64 val | Bool val | None val), HashEq[String val] val] val = qualify)
: JsonObject val^

Parameters

Returns


Public Functions

apply

[Source]

Look up a value by key. Raises if key is not present.

fun box apply(
  key: String val)
: (JsonObject val | JsonArray val | String val | 
    I64 val | F64 val | Bool val | 
    None val) ?

Parameters

Returns


get_or_else

[Source]

Look up a value by key, returning default if absent.

fun box get_or_else(
  key: String val,
  default: (JsonObject val | JsonArray val | String val | 
    I64 val | F64 val | Bool val | 
    None val))
: (JsonObject val | JsonArray val | String val | 
    I64 val | F64 val | Bool val | 
    None val)

Parameters

Returns


contains

[Source]

Check whether a key is present.

fun box contains(
  key: String val)
: Bool val

Parameters

Returns


size

[Source]

Number of key-value pairs.

fun box size()
: USize val

Returns


update

[Source]

Return a new object with the key set to value.

fun box update(
  key: String val,
  value: (JsonObject val | JsonArray val | String val | 
    I64 val | F64 val | Bool val | 
    None val))
: JsonObject val

Parameters

Returns


remove

[Source]

Return a new object without the given key. No-op if key is absent.

fun box remove(
  key: String val)
: JsonObject val

Parameters

Returns


keys

[Source]

Iterate over keys.

fun box keys()
: MapKeys[String val, (JsonObject val | JsonArray val | String val | I64 val | F64 val | Bool val | None val), HashEq[String val] val] ref

Returns


values

[Source]

Iterate over values.

fun box values()
: MapValues[String val, (JsonObject val | JsonArray val | String val | I64 val | F64 val | Bool val | None val), HashEq[String val] val] ref

Returns


pairs

[Source]

Iterate over (key, value) pairs.

fun box pairs()
: MapPairs[String val, (JsonObject val | JsonArray val | String val | I64 val | F64 val | Bool val | None val), HashEq[String val] val] ref

Returns


string

[Source]

Compact JSON serialization.

fun box string()
: String iso^

Returns


pretty_string

[Source]

Pretty-printed JSON serialization.

fun box pretty_string(
  indent: String val = "  ")
: String iso^

Parameters

Returns