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

PGObject::Type::JSON - JSON wrappers for PGObject

VERSION

Version 2.1.1

SYNOPSIS

PGOBject::Type::JSON->register();

Columns of type json will be converted into hashrefs

my $obj =  PGOBject::Type::JSON->new($hashref);

$obj will now serialize to the database as json.

DESCRIPTION

This module allows json types or others (specified by custom register) types to be converted from JSON into objects according to their values.

This module assumes that encoding will be in UTF8 across the board and is not safe to use with other database encodings.

SUBROUTINES/METHODS

register(registry => 'default', types => ['json'])

new($ref)

Stores this as a reference. Nulls are now scoped references to a lexically scoped variable.

If values other than scalars, arrayrefs, or hashes are passed in, throws an error.

from_db

serializes from the db. Note that database nulls are preserved distinct from json null's.

to_db

returns undef if is_null. Otherwise returns the value encoded as JSON

null

Return a null type for storage in the db.

TO_JSON

The handler for setting this to the JSON parser

reftype

Returns the reftype of the object (i.e. HASH, SCALAR, ARRAY)

is_null

Returns true if is a database null.

json_null

Returns a JSON null

is_json_null

Returns true if the value is a JSON null. Else it returns false

AUTHOR

Chris Travers, <chris.travers at gmail.com>

BUGS

Please report any bugs or feature requests to bug-pgobject-type-json at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PGObject-Type-JSON. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc PGObject::Type::JSON

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2013-2023 Chris Travers.

This program is released under the following license: BSD