Hyperlinkv0.8.0-beta.28

SchemaGetter

SchemaGetter.parseJsonfunctioneffect/SchemaGetter.ts:991
<E extends string>(): Getter<Schema.MutableJson, E>
<E extends string>(options: ParseJsonOptions): Getter<unknown, E>

Parses a JSON string into a value.

When to use

Use when you need a schema getter to parse a present encoded JSON string during decoding.

Details

  • Skips None inputs.
  • Without reviver: returns Schema.MutableJson (typed JSON).
  • With reviver: returns unknown (reviver may produce arbitrary values).
  • On parse failure, fails with SchemaIssue.InvalidValue containing the error message.

Example (Parsing JSON)

import { SchemaGetter } from "effect"

const parse = SchemaGetter.parseJson<string>()
// Getter<MutableJson, string>
JSON gettersstringifyJson
export function parseJson<E extends string>(): Getter<Schema.MutableJson, E>
export function parseJson<E extends string>(options: ParseJsonOptions): Getter<unknown, E>
export function parseJson<E extends string>(options?: ParseJsonOptions | undefined): Getter<unknown, E> {
  return onSome((input) =>
    Effect.try({
      try: () => Option.some(JSON.parse(input, options?.reviver)),
      catch: (e) => new SchemaIssue.InvalidValue(Option.some(input), { message: globalThis.String(e) })
    })
  )
}
Referenced by 1 symbols