Perl ile JSON
Bu bölüm, JSON nesnelerinin Perl programlama dili kullanılarak nasıl kodlanacağını ve çözüleceğini kapsar. JSON için Perl ile programlamaya başlamak için ortamı hazırlayarak başlayalım.
Çevre
JSON'u Perl kullanarak kodlamaya ve kodunu çözmeye başlamadan önce, CPAN'dan temin edilebilen JSON modülünü kurmanız gerekir. JSON-2.53.tar.gz veya başka bir son sürümü indirdikten sonra, aşağıda belirtilen adımları izleyin -
$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53
$perl Makefile.PL
$make
$make install
JSON İşlevleri
Fonksiyon | Kitaplıklar |
---|---|
encode_json | Verilen Perl veri yapısını UTF-8 kodlu, ikili bir dizeye dönüştürür. |
decode_json | JSON dizesinin kodunu çözer. |
to_json | Verilen Perl veri yapısını bir json dizesine dönüştürür. |
from_json | Bir json dizesi bekler ve sonuçta ortaya çıkan referansı döndürerek onu ayrıştırmaya çalışır. |
convert_blessed | Perl'in bir nesneyi JSON'a dönüştürmek için nesne sınıfında TO_JSON yöntemini kullanabilmesi için bu işlevi gerçek değerle kullanın. |
JSON'u Perl'de kodlama (encode_json)
Perl encode_json () işlevi, verilen Perl veri yapısını UTF-8 kodlu, ikili bir dizeye dönüştürür.
Sözdizimi
$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);
Misal
Aşağıdaki örnek, Perl ile JSON altındaki dizileri gösterir -
#!/usr/bin/perl
use JSON;
my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
my $json = encode_json \%rec_hash;
print "$json\n";
Yürütürken, bu aşağıdaki sonucu verecektir -
{"e":5,"c":3,"a":1,"b":2,"d":4}
Aşağıdaki örnek, Perl nesnelerinin JSON'a nasıl dönüştürülebileceğini gösterir -
#!/usr/bin/perl
package Emp;
sub new {
my $class = shift;
my $self = {
name => shift,
hobbies => shift,
birthdate => shift,
};
bless $self, $class;
return $self;
}
sub TO_JSON { return { %{ shift() } }; }
package main;
use JSON;
my $JSON = JSON->new->utf8;
$JSON->convert_blessed(1);
$e = new Emp( "sachin", "sports", "8/5/1974 12:20:03 pm");
$json = $JSON->encode($e);
print "$json\n";
Yürütüldüğünde, aşağıdaki sonucu üretecektir -
{"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}
Perl'de JSON kodunu çözme (decode_json)
Perl decode_json () işlevi, Perl'de JSON kodunu çözmek için kullanılır. Bu işlev json'dan kodu çözülen değeri uygun bir Perl türüne döndürür.
Sözdizimi
$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text)
Misal
Aşağıdaki örnek, JSON nesnelerinin kodunu çözmek için Perl'in nasıl kullanılabileceğini gösterir. Halihazırda makinenizde yoksa Data :: Dumper modülünü kurmanız gerekecektir.
#!/usr/bin/perl
use JSON;
use Data::Dumper;
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$text = decode_json($json);
print Dumper($text);
Yürütüldüğünde, aşağıdaki sonucu üretecektir -
$VAR1 = {
'e' => 5,
'c' => 3,
'a' => 1,
'b' => 2,
'd' => 4
};