.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "YAML::PP::Schema::JSON 3" .TH YAML::PP::Schema::JSON 3 2024-02-14 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME YAML::PP::Schema::JSON \- YAML 1.2 JSON Schema .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 3 \& my $yp = YAML::PP\->new( schema => [\*(AqJSON\*(Aq] ); \& my $yp = YAML::PP\->new( schema => [qw/ JSON empty=str /] ); \& my $yp = YAML::PP\->new( schema => [qw/ JSON empty=null /] ); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" With this schema, the resolution of plain values will work like in JSON. Everything that matches a special value will be loaded as such, other plain scalars will be loaded as strings. .PP Note that this is different from the official YAML 1.2 JSON Schema, where all strings have to be quoted. .PP Here you can see all Schemas and examples implemented by YAML::PP: .PP Official Schema: .SH CONFIGURATION .IX Header "CONFIGURATION" The official YAML 1.2 JSON Schema wants all strings to be quoted. YAML::PP currently does not require that (it might do this optionally in the future). .PP That means, there are no empty nodes allowed in the official schema. Example: .PP .Vb 2 \& \-\-\- \& key: .Ve .PP The default behaviour of YAML::PP::Schema::JSON is to return an empty string, so it would be equivalent to: .PP .Vb 2 \& \-\-\- \& key: \*(Aq\*(Aq .Ve .PP You can configure it to resolve this as \f(CW\*(C`undef\*(C'\fR: .PP .Vb 1 \& my $yp = YAML::PP\->new( schema => [qw/ JSON empty=null /] ); .Ve .PP This way it is equivalent to: .PP .Vb 2 \& \-\-\- \& key: null .Ve .PP The default is: .PP .Vb 1 \& my $yp = YAML::PP\->new( schema => [qw/ JSON empty=str /] ); .Ve .SH METHODS .IX Header "METHODS" .IP register 4 .IX Item "register" Called by YAML::PP::Schema .IP "represent_bool, represent_float, represent_int, represent_literal, represent_undef" 4 .IX Item "represent_bool, represent_float, represent_int, represent_literal, represent_undef" Functions to represent the several node types. .Sp .Vb 1 \& represent_bool($representer, $node); .Ve