JSON với Perl

Chương này trình bày cách mã hóa và giải mã các đối tượng JSON bằng ngôn ngữ lập trình Perl. Hãy bắt đầu với việc chuẩn bị môi trường để bắt đầu lập trình của chúng ta với Perl cho JSON.

Môi trường

Trước khi bắt đầu mã hóa và giải mã JSON bằng Perl, bạn cần cài đặt mô-đun JSON, có thể lấy mô-đun này từ CPAN. Sau khi bạn tải xuống JSON-2.53.tar.gz hoặc bất kỳ phiên bản mới nhất nào khác, hãy làm theo các bước được đề cập bên dưới -

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

Các hàm JSON

Chức năng Thư viện
encode_json Chuyển đổi cấu trúc dữ liệu Perl đã cho thành chuỗi nhị phân, được mã hóa UTF-8.
decode_json Giải mã một chuỗi JSON.
to_json Chuyển đổi cấu trúc dữ liệu Perl đã cho thành một chuỗi json.
from_json Mong đợi một chuỗi json và cố gắng phân tích cú pháp nó, trả về tham chiếu kết quả.
convert_blessed Sử dụng hàm này với giá trị true để Perl có thể sử dụng phương thức TO_JSON trên lớp của đối tượng để chuyển đổi một đối tượng thành JSON.

Mã hóa JSON trong Perl (encode_json)

Hàm Perl encode_json () chuyển đổi cấu trúc dữ liệu Perl đã cho thành một chuỗi nhị phân, được mã hóa UTF-8.

Cú pháp

$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);

Thí dụ

Ví dụ sau cho thấy các mảng trong JSON với Perl -

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

Trong khi thực thi, điều này sẽ tạo ra kết quả sau:

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

Ví dụ sau cho thấy cách các đối tượng Perl có thể được chuyển đổi thành 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";

Khi thực thi, nó sẽ tạo ra kết quả sau:

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

Giải mã JSON trong Perl (decode_json)

Hàm Perl decode_json () được sử dụng để giải mã JSON trong Perl. Hàm này trả về giá trị được giải mã từ json thành một kiểu Perl thích hợp.

Cú pháp

$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text)

Thí dụ

Ví dụ sau đây cho thấy cách Perl có thể được sử dụng để giải mã các đối tượng JSON. Tại đây, bạn sẽ cần cài đặt mô-đun Data :: Dumper nếu bạn chưa có mô-đun này trên máy của mình.

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

Khi thực thi, nó sẽ tạo ra kết quả sau:

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