Perl을 사용한 JSON

이 장에서는 Perl 프로그래밍 언어를 사용하여 JSON 객체를 인코딩하고 디코딩하는 방법을 다룹니다. JSON 용 Perl로 프로그래밍을 시작할 환경을 준비하는 것부터 시작하겠습니다.

환경

Perl을 사용하여 JSON 인코딩 및 디코딩을 시작하기 전에 CPAN에서 얻을 수있는 JSON 모듈을 설치해야합니다. 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로 인코딩 된 2 진 문자열로 변환합니다.
decode_json JSON 문자열을 디코딩합니다.
to_json 주어진 Perl 데이터 구조를 json 문자열로 변환합니다.
from_json json 문자열을 예상하고 구문 분석을 시도하여 결과 참조를 반환합니다.
convert_blessed Perl이 객체의 클래스에서 TO_JSON 메서드를 사용하여 객체를 JSON으로 변환 할 수 있도록이 함수를 true 값과 함께 사용합니다.

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

다음 예제는 Perl과 함께 JSON에서 배열을 보여줍니다-

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

Perl에서 JSON 디코딩 (decode_json)

Perl decode_json () 함수는 Perl에서 JSON을 디코딩하는 데 사용됩니다. 이 함수는 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
};