|
|
1 | =encoding utf-8 |
|
|
2 | |
1 | =head1 NAME |
3 | =head1 NAME |
2 | |
4 | |
3 | JSON::XS - JSON serialising/deserialising, done correctly and fast |
5 | JSON::XS - JSON serialising/deserialising, done correctly and fast |
|
|
6 | |
|
|
7 | JSON::XS - 正しくて高速な JSON シリアライザ/デシリアライザ |
|
|
8 | (http://fleur.hio.jp/perldoc/mix/lib/JSON/XS.html) |
4 | |
9 | |
5 | =head1 SYNOPSIS |
10 | =head1 SYNOPSIS |
6 | |
11 | |
7 | use JSON::XS; |
12 | use JSON::XS; |
8 | |
13 | |
… | |
… | |
81 | |
86 | |
82 | package JSON::XS; |
87 | package JSON::XS; |
83 | |
88 | |
84 | use strict; |
89 | use strict; |
85 | |
90 | |
86 | our $VERSION = '1.43'; |
91 | our $VERSION = '1.5'; |
87 | our @ISA = qw(Exporter); |
92 | our @ISA = qw(Exporter); |
88 | |
93 | |
89 | our @EXPORT = qw(to_json from_json); |
94 | our @EXPORT = qw(to_json from_json); |
90 | |
95 | |
91 | use Exporter; |
96 | use Exporter; |
… | |
… | |
277 | This setting has no effect when decoding JSON texts. |
282 | This setting has no effect when decoding JSON texts. |
278 | |
283 | |
279 | Example, space_before and indent disabled, space_after enabled: |
284 | Example, space_before and indent disabled, space_after enabled: |
280 | |
285 | |
281 | {"key": "value"} |
286 | {"key": "value"} |
|
|
287 | |
|
|
288 | =item $json = $json->relaxed ([$enable]) |
|
|
289 | |
|
|
290 | If C<$enable> is true (or missing), then C<decode> will accept some |
|
|
291 | extensions to normal JSON syntax (see below). C<encode> will not be |
|
|
292 | affected in anyway. I<Be aware that this option makes you accept invalid |
|
|
293 | JSON texts as if they were valid!>. I suggest only to use this option to |
|
|
294 | parse application-specific files written by humans (configuration files, |
|
|
295 | resource files etc.) |
|
|
296 | |
|
|
297 | If C<$enable> is false (the default), then C<decode> will only accept |
|
|
298 | valid JSON texts. |
|
|
299 | |
|
|
300 | Currently accepted extensions are: |
|
|
301 | |
|
|
302 | =over 4 |
|
|
303 | |
|
|
304 | =item * list items can have an end-comma |
|
|
305 | |
|
|
306 | JSON I<separates> array elements and key-value pairs with commas. This |
|
|
307 | can be annoying if you write JSON texts manually and want to be able to |
|
|
308 | quickly append elements, so this extension accepts comma at the end of |
|
|
309 | such items not just between them: |
|
|
310 | |
|
|
311 | [ |
|
|
312 | 1, |
|
|
313 | 2, <- this comma not normally allowed |
|
|
314 | ] |
|
|
315 | { |
|
|
316 | "k1": "v1", |
|
|
317 | "k2": "v2", <- this comma not normally allowed |
|
|
318 | } |
|
|
319 | |
|
|
320 | =item * shell-style '#'-comments |
|
|
321 | |
|
|
322 | Whenever JSON allows whitespace, shell-style comments are additionally |
|
|
323 | allowed. They are terminated by the first carriage-return or line-feed |
|
|
324 | character, after which more white-space and comments are allowed. |
|
|
325 | |
|
|
326 | [ |
|
|
327 | 1, # this comment not allowed in JSON |
|
|
328 | # neither this one... |
|
|
329 | ] |
|
|
330 | |
|
|
331 | =back |
282 | |
332 | |
283 | =item $json = $json->canonical ([$enable]) |
333 | =item $json = $json->canonical ([$enable]) |
284 | |
334 | |
285 | If C<$enable> is true (or missing), then the C<encode> method will output JSON objects |
335 | If C<$enable> is true (or missing), then the C<encode> method will output JSON objects |
286 | by sorting their keys. This is adding a comparatively high overhead. |
336 | by sorting their keys. This is adding a comparatively high overhead. |
… | |
… | |
621 | to_json [\0,JSON::XS::true] # yields [false,true] |
671 | to_json [\0,JSON::XS::true] # yields [false,true] |
622 | |
672 | |
623 | =item JSON::XS::true, JSON::XS::false |
673 | =item JSON::XS::true, JSON::XS::false |
624 | |
674 | |
625 | These special values become JSON true and JSON false values, |
675 | These special values become JSON true and JSON false values, |
626 | respectively. You cna alos use C<\1> and C<\0> directly if you want. |
676 | respectively. You can also use C<\1> and C<\0> directly if you want. |
627 | |
677 | |
628 | =item blessed objects |
678 | =item blessed objects |
629 | |
679 | |
630 | Blessed objects are not allowed. JSON::XS currently tries to encode their |
680 | Blessed objects are not allowed. JSON::XS currently tries to encode their |
631 | underlying representation (hash- or arrayref), but this behaviour might |
681 | underlying representation (hash- or arrayref), but this behaviour might |