The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SPVM::JSON - JSON serializing/deserializing

SYNOPSYS

  use SPVM::JSON;

  # new
  my $json = SPVM::JSON->new;

  # decode
  $json->decode($json_text);

  # set the canonical flag on
  $json->set_canonical(1);

  # encode
  my $encoded_json = $json->encode($spvm_data);

DESCRIPTION

SPVM::JSON converts SPVM data structures to JSON and vice versa.

CLASS METHODS

new

  sub new : SPVM::JSON ()

Create new SPVM::JSON object that can be used to de/encode JSON strings.

INSTANCE METHODS

encode

  sub encode : string ($self : self, $object : object)

Converts the given SPVM data structure (undef or a object of numeric, string, SPVM::JSON::Bool, SPVM::Hash or SPVM::ObjectList) to its JSON representation.

decode

  sub decode : object ($self : self, $json : string)

The opposite of encode: expects a JSON text and tries to parse it, returning the resulting object. Dies on error. Numbers in a JSON text are converted to SPVM::Double.

set_canonical

  sub set_canonical : void ($self : self, $enable : byte)

If $enable is true, then the encode method will output JSON objects by sorting their keys. This is adding a comparatively high overhead.

canonical

  sub canonical : byte ($self : self)

Get the canonical flag.