آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش JSON در Perl

دوره های مرتبط با این مقاله

JSON در Perl

این مبحث نحوه ی decode/encode اشیا JSON را با استفاده از زبان برنامه نویسی Perl پوشش می دهد. ابتدا می بایست محیط را برای شروع به برنامه نویسی با Perl راه اندازی کنید.

محیط

پیش از اقدام به encode/decode اشیا JSON با Perl می بایست ماژول JSON را نصب کنید. این ماژول از طریق CPAN قابل دسترسی می باشد. پس از دانلود JSON-2.53.tar.gz یا هر ورژن جدید دیگری، دستورات زیر را اجرا نمایید:

$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53
$perl Makefile.PL
$make
$make install

توابع JSON

شرح کاربرد
تابع
Data structure (آرگومان پاس داده شده) یا ورودی از نوع Perl را به رشته ی باینری کدگذاری شده با کاراکترهای UTF-8 تبدیل می کند.
encode_json
عکس تابع encode-json عمل می کند. در واقع یک رشته ی باینری با کاراکترهای UTF-8 به عنوان ورودی دریافت کرده و سعی می کند آن را به عنوان یک متن JSON با کاراکترهای UTF-8 تفسیر (parse) کند و در نهایت reference حاصل را برگرداند.
decode_json
Data structure ورودی (پاس داده شده به عنوان آرگومان) را به رشته از نوع json تبدیل می کند.
to_json
یک رشته از نوع json دریافت کرده و سعی می کند آن را parse کند و در صورت موفقیت reference حاصل را برگرداند.
from_json
این تابع را با مقدار true بکار ببرید تا Perl بتواند با استفاده از متد TO-JSON در کلاس object مورد نظر، یک شی را به JSON تبدیل کند.
convert_blessed

تبدیل data structure به رشته ی json (encode-json)

()تابع encode-json زبان Perl ساختمان داده ی ورودی (data structure) را به رشته ی باینری کدگذاری شده با کاراکترهای UTF-8 تبدیل می کند.

ساختارنگارشی (Syntax)

                        
$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);
مثال:
#!/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";

با اجرای کد فوق، نتیجه ی زیر حاصل می شود:

{"e":5,"c":3,"a":1,"b":2,"d":4}

نمونه ی زیر تبدیل اشیا Perl به فرمت JSON را نمایش می دهد:

#!/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";

پس از اجرای کد فوق، خروجی زیر تولید می شود:

                        {"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}

تبدیل رشته ی JSON به متغیری از نوع Perl (decode_json)

تابع ()decode_json یک رشته ی JSON را به عنوان ورودی دریافت کرده و یک متغیر Perl در خروجی برمی گرداند.

ساختارنگارشی (Syntax)

                       
$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text
مثال:

در مثال زیر یک شی JSON توسط تابع ()decode_json به متغیری در زبان Perl تبدیل می شود. برای این منظور لازم است ماژول Data::Dumper را نصب نمایید.

#!/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);

نتیجه ی زیر حاصل می شود:

$VAR1 = {
  'e' =>5,
  'c' =>3,
  'a' =>1,
  'b' =>2,
  'd' =>4
};

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده بوده و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

  • 1107
  •    4
  • تاریخ ارسال :   1395/05/19

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .