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.100 by root, Sun Mar 30 09:27:16 2008 UTC vs.
Revision 1.101 by root, Sat Apr 5 18:15:46 2008 UTC

628=item $json = $json->max_depth ([$maximum_nesting_depth]) 628=item $json = $json->max_depth ([$maximum_nesting_depth])
629 629
630=item $max_depth = $json->get_max_depth 630=item $max_depth = $json->get_max_depth
631 631
632Sets the maximum nesting level (default C<512>) accepted while encoding 632Sets the maximum nesting level (default C<512>) accepted while encoding
633or decoding. If the JSON text or Perl data structure has an equal or 633or decoding. If a higher nesting level is detected in JSON text or a Perl
634higher nesting level then this limit, then the encoder and decoder will 634data structure, then the encoder and decoder will stop and croak at that
635stop and croak at that point. 635point.
636 636
637Nesting level is defined by number of hash- or arrayrefs that the encoder 637Nesting level is defined by number of hash- or arrayrefs that the encoder
638needs to traverse to reach a given point or the number of C<{> or C<[> 638needs to traverse to reach a given point or the number of C<{> or C<[>
639characters without their matching closing parenthesis crossed to reach a 639characters without their matching closing parenthesis crossed to reach a
640given character in a string. 640given character in a string.
641 641
642Setting the maximum depth to one disallows any nesting, so that ensures 642Setting the maximum depth to one disallows any nesting, so that ensures
643that the object is only a single hash/object or array. 643that the object is only a single hash/object or array.
644 644
645The argument to C<max_depth> will be rounded up to the next highest power
646of two. If no argument is given, the highest possible setting will be 645If no argument is given, the highest possible setting will be used, which
647used, which is rarely useful. 646is rarely useful.
647
648Note that nesting is implemented by recursion in C. The default value has
649been chosen to be as large as typical operating systems allow without
650crashing.
648 651
649See SECURITY CONSIDERATIONS, below, for more info on why this is useful. 652See SECURITY CONSIDERATIONS, below, for more info on why this is useful.
650 653
651=item $json = $json->max_size ([$maximum_string_size]) 654=item $json = $json->max_size ([$maximum_string_size])
652 655
653=item $max_size = $json->get_max_size 656=item $max_size = $json->get_max_size
654 657
655Set the maximum length a JSON text may have (in bytes) where decoding is 658Set the maximum length a JSON text may have (in bytes) where decoding is
656being attempted. The default is C<0>, meaning no limit. When C<decode> 659being attempted. The default is C<0>, meaning no limit. When C<decode>
657is called on a string longer then this number of characters it will not 660is called on a string that is longer then this many bytes, it will not
658attempt to decode the string but throw an exception. This setting has no 661attempt to decode the string but throw an exception. This setting has no
659effect on C<encode> (yet). 662effect on C<encode> (yet).
660 663
661The argument to C<max_size> will be rounded up to the next B<highest> 664If no argument is given, the limit check will be deactivated (same as when
662power of two (so may be more than requested). If no argument is given, the 665C<0> is specified).
663limit check will be deactivated (same as when C<0> is specified).
664 666
665See SECURITY CONSIDERATIONS, below, for more info on why this is useful. 667See SECURITY CONSIDERATIONS, below, for more info on why this is useful.
666 668
667=item $json_text = $json->encode ($perl_scalar) 669=item $json_text = $json->encode ($perl_scalar)
668 670

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines