… | |
… | |
1216 | =cut |
1216 | =cut |
1217 | |
1217 | |
1218 | register_read_type json => sub { |
1218 | register_read_type json => sub { |
1219 | my ($self, $cb) = @_; |
1219 | my ($self, $cb) = @_; |
1220 | |
1220 | |
1221 | require JSON; |
1221 | my $json = $self->{json} ||= |
|
|
1222 | eval { require JSON::XS; JSON::XS->new->utf8 } |
|
|
1223 | || do { require JSON; JSON->new->utf8 }; |
1222 | |
1224 | |
1223 | my $data; |
1225 | my $data; |
1224 | my $rbuf = \$self->{rbuf}; |
1226 | my $rbuf = \$self->{rbuf}; |
1225 | |
|
|
1226 | my $json = $self->{json} ||= JSON->new->utf8; |
|
|
1227 | |
1227 | |
1228 | sub { |
1228 | sub { |
1229 | my $ref = eval { $json->incr_parse ($self->{rbuf}) }; |
1229 | my $ref = eval { $json->incr_parse ($self->{rbuf}) }; |
1230 | |
1230 | |
1231 | if ($ref) { |
1231 | if ($ref) { |