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.148 by root, Tue Oct 29 00:19:45 2013 UTC vs.
Revision 1.150 by root, Tue Oct 29 00:48:07 2013 UTC

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
1145more). These values and the paclkage/classname of the object will then be 1145more). These values and the paclkage/classname of the object will then be
1146encoded as a tagged JSON value in the following format: 1146encoded as a tagged JSON value in the following format:
1147 1147
1148 ("classname")[FREEZE return values...] 1148 ("classname")[FREEZE return values...]
1149 1149
1150e.g.:
1151
1152 ("URI")["http://www.google.com/"]
1153 ("MyDate")[2013,10,29]
1154 ("ImageData::JPEG")["Z3...VlCg=="]
1155
1150For example, the hypothetical C<My::Object> C<FREEZE> method might use the 1156For example, the hypothetical C<My::Object> C<FREEZE> method might use the
1151objects C<type> and C<id> members to encode the object: 1157objects C<type> and C<id> members to encode the object:
1152 1158
1153 sub My::Object::FREEZE { 1159 sub My::Object::FREEZE {
1154 my ($self, $serialiser) = @_; 1160 my ($self, $serialiser) = @_;
1155 1161
1156 ($self->{type}, $self->{id}) 1162 ($self->{type}, $self->{id})
1157 } 1163 }
1158 1164
1159=item 2. C<convert_blessed> is enabled and object has a C<TO_JSON> method. 1165=item 2. C<convert_blessed> is enabled and the object has a C<TO_JSON> method.
1160 1166
1161In this case, the C<TO_JSON> method of the object is invoked in scalar 1167In 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 1168context. It must return a single scalar that can be directly encoded into
1163JSON. This scalar replaces the object in the JSON text. 1169JSON. This scalar replaces the object in the JSON text.
1164 1170

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines