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
};