JSON & Perl


本教學將教你如何使用Perl程式設計語言進行編碼和解碼JSON物件。讓我們開始準備Perl程式設計環境並使用JSON開

環境

開始使用Perl編碼和解碼JSON之前,需要安裝 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 函式

函式 程式庫
encode_json Perl資料結構轉換為UTF-8編碼,二進位制串
decode_json 一個JSON字串進行解碼
to_json Perl資料結構轉換為JSON字串
from_json JSON字串,並試圖解析它,返回結果的參考
convert_blessed 使用此函式的 true 值,以便Perl可以使用TO_JSON的方法將物件轉換成JSON物件的類。

在Perl中編碼JSON(encode_json)

Perl encode_json的() 函式Perl資料結構轉換成一個UTF-8 編碼的二進位制字串。

語法:

$json_text = encode_json ($perl_scalar );

or

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

範例

下面的例子顯示陣列在JSON用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
";

在執行過程中,這將產生以下結果:

{"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
";

在執行過程中,這將產生以下結果:

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

解碼JSON在Perl中(decode_json)

Perl decode_json()函式用於解碼JSON在Perl中。此函式返回值從json解碼適當的Perl型別

語法:

$perl_scalar = decode_json $json_text

or

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

範例

下面的例子顯示了 Perl 如何用來解碼JSON 物件。在這裡,需要安裝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
        };