ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/XS.pm
(Generate patch)

Comparing JSON-XS/XS.pm (file contents):
Revision 1.147 by root, Tue Oct 29 00:19:08 2013 UTC vs.
Revision 1.149 by root, Tue Oct 29 00:21:10 2013 UTC

483 483
484=item $json = $json->convert_blessed ([$enable]) 484=item $json = $json->convert_blessed ([$enable])
485 485
486=item $enabled = $json->get_convert_blessed 486=item $enabled = $json->get_convert_blessed
487 487
488See "OBJECT SERIALISATION" for details. 488See L<OBJECT SERIALISATION> for details.
489 489
490If C<$enable> is true (or missing), then C<encode>, upon encountering a 490If C<$enable> is true (or missing), then C<encode>, upon encountering a
491blessed object, will check for the availability of the C<TO_JSON> method 491blessed object, will check for the availability of the C<TO_JSON> method
492on the object's class. If found, it will be called in scalar context and 492on the object's class. If found, it will be called in scalar context and
493the resulting scalar will be encoded instead of the object. 493the resulting scalar will be encoded instead of the object.
507 507
508=item $json = $json->allow_tags ([$enable]) 508=item $json = $json->allow_tags ([$enable])
509 509
510=item $enabled = $json->allow_tags 510=item $enabled = $json->allow_tags
511 511
512See "OBJECT SERIALISATION" for details. 512See L<OBJECT SERIALISATION> for details.
513 513
514If C<$enable> is true (or missing), then C<encode>, upon encountering a 514If C<$enable> is true (or missing), then C<encode>, upon encountering a
515blessed object, will check for the availability of the C<FREEZE> method on 515blessed object, will check for the availability of the C<FREEZE> method on
516the object's class. If found, it will be used to serialise the object into 516the object's class. If found, it will be used to serialise the object into
517a nonstandard tagged JSON value (that JSON decoders cannot decode). 517a nonstandard tagged JSON value (that JSON decoders cannot decode).
1017Another nonstandard extension to the JSON syntax, enabled with the 1017Another nonstandard extension to the JSON syntax, enabled with the
1018C<allow_tags> setting, are tagged values. In this implementation, the 1018C<allow_tags> setting, are tagged values. In this implementation, the
1019I<tag> must be a perl package/class name encoded as a JSON string, and the 1019I<tag> must be a perl package/class name encoded as a JSON string, and the
1020I<value> must be a JSON array encoding optional constructor arguments. 1020I<value> must be a JSON array encoding optional constructor arguments.
1021 1021
1022See "OBJECT SERIALISATION", below, for details. 1022See L<OBJECT SERIALISATION>, below, for details.
1023 1023
1024=back 1024=back
1025 1025
1026 1026
1027=head2 PERL -> JSON 1027=head2 PERL -> JSON
1066directly if you want. 1066directly if you want.
1067 1067
1068=item blessed objects 1068=item blessed objects
1069 1069
1070Blessed objects are not directly representable in JSON, but C<JSON::XS> 1070Blessed objects are not directly representable in JSON, but C<JSON::XS>
1071allows various ways of handling objects. See "OBJECT SERIALISATION", 1071allows various ways of handling objects. See L<OBJECT SERIALISATION>,
1072below, for details. 1072below, for details.
1073 1073
1074=item simple scalars 1074=item simple scalars
1075 1075
1076Simple Perl scalars (any scalar that is not a reference) are the most 1076Simple Perl scalars (any scalar that is not a reference) are the most
1129C<allow_blessed>, C<convert_blessed> and C<allow_tags> settings, which are 1129C<allow_blessed>, C<convert_blessed> and C<allow_tags> settings, which are
1130used in this order: 1130used in this order:
1131 1131
1132=over 4 1132=over 4
1133 1133
1134=item 1. C<allow_tags> is enabled and object has a C<FREEZE> method. 1134=item 1. C<allow_tags> is enabled and the object has a C<FREEZE> method.
1135 1135
1136In this case, C<JSON::XS> uses the L<Types::Serialiser> object 1136In this case, C<JSON::XS> uses the L<Types::Serialiser> object
1137serialisation protocol to create a tagged JSON value, using a nonstandard 1137serialisation protocol to create a tagged JSON value, using a nonstandard
1138extension to the JSON syntax. 1138extension to the JSON syntax.
1139 1139
1154 my ($self, $serialiser) = @_; 1154 my ($self, $serialiser) = @_;
1155 1155
1156 ($self->{type}, $self->{id}) 1156 ($self->{type}, $self->{id})
1157 } 1157 }
1158 1158
1159=item 2. C<convert_blessed> is enabled and object has a C<TO_JSON> method. 1159=item 2. C<convert_blessed> is enabled and the object has a C<TO_JSON> method.
1160 1160
1161In this case, the C<TO_JSON> method of the object is invoked in scalar 1161In this case, the C<TO_JSON> method of the object is invoked in scalar
1162context. It must return a single scalar that can be directly encoded into 1162context. It must return a single scalar that can be directly encoded into
1163JSON. This scalar replaces the object in the JSON text. 1163JSON. This scalar replaces the object in the JSON text.
1164 1164

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines