NAME

OpenSearch::Client::Role::Serializer::JSON - A Serializer role for JSON modules

VERSION

version 3.007002

DESCRIPTION

This role encodes Perl data structures into JSON strings, and decodes JSON strings into Perl data structures.

METHODS

encode()

$bytes = $serializer->encode($ref);
$bytes = $serializer->encode($str);

The "encode()" method converts array and hash refs into their JSON equivalents. If a string is passed in, it is returned as the UTF8 encoded version of itself. The empty string and undef are returned as is.

encode_pretty()

$bytes = $serializer->encode_pretty($ref);
$bytes = $serializer->encode_pretty($str);

Works exactly as "encode()" but the JSON output is pretty-printed.

encode_bulk()

$bytes = $serializer->encode_bulk([\%hash,\%hash,...]);
$bytes = $serializer->encode_bulk([$str,$str,...]);

The "encode_bulk()" method expects an array ref of hashes or strings. Each hash or string is processed by "encode()" then joined together by newline characters, with a final newline character appended to the end. This is the special JSON format used for bulk requests.

decode()

$var = $serializer->decode($json_bytes);
$str = $serializer->decode($bytes);

If the passed in value looks like JSON (ie starts with a { or [ character), then it is decoded from JSON, otherwise it is returned as the UTF8 decoded version of itself. The empty string and undef are returned as is.

MANUAL

Documentation index OpenSearch::Client::Manual

HISTORY

This distribution is derived from Search::Elasticsearch version 7.714. All subsequent changes are unique to this distribution.

AUTHOR

Mark Dootson <mdootson@cpan.org> ( current maintainer )

CREDITS

OpenSearch::Client is based on Search::Elasticsearch version 7.714 by Enrico Zimuel <enrico.zimuel@elastic.co>.

COPYRIGHT AND LICENSE

Copyright (C) 2026 by Mark Dootson ( this distribution )

Copyright (C) 2021 by Elasticsearch BV ( original distribution )

This is free software, licensed under:

The Apache License, Version 2.0, January 2004