JSON mit Perl

In diesem Kapitel wird beschrieben, wie Sie JSON-Objekte mit der Programmiersprache Perl codieren und decodieren. Beginnen wir mit der Vorbereitung der Umgebung, um unsere Programmierung mit Perl für JSON zu starten.

Umgebung

Bevor Sie mit dem Codieren und Decodieren von JSON mit Perl beginnen, müssen Sie das JSON-Modul installieren, das von CPAN bezogen werden kann. Führen Sie nach dem Herunterladen von JSON-2.53.tar.gz oder einer anderen neuesten Version die folgenden Schritte aus:

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

JSON-Funktionen

Funktion Bibliotheken
encode_json Konvertiert die angegebene Perl-Datenstruktur in eine UTF-8-codierte Binärzeichenfolge.
decode_json Dekodiert eine JSON-Zeichenfolge.
to_json Konvertiert die angegebene Perl-Datenstruktur in eine JSON-Zeichenfolge.
from_json Erwartet eine JSON-Zeichenfolge und versucht, sie zu analysieren, wobei die resultierende Referenz zurückgegeben wird.
convert_blessed Verwenden Sie diese Funktion mit true value, damit Perl die TO_JSON-Methode für die Objektklasse verwenden kann, um ein Objekt in JSON zu konvertieren.

JSON in Perl codieren (encode_json)

Die Perl-Funktion encode_json () konvertiert die angegebene Perl-Datenstruktur in eine UTF-8-codierte Binärzeichenfolge.

Syntax

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

Beispiel

Das folgende Beispiel zeigt Arrays unter JSON mit 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";

Während der Ausführung wird das folgende Ergebnis erzielt:

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

Das folgende Beispiel zeigt, wie Perl-Objekte in JSON konvertiert werden können -

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

Bei der Ausführung wird das folgende Ergebnis angezeigt:

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

JSON in Perl dekodieren (decode_json)

Die Perl-Funktion decode_json () wird zum Dekodieren von JSON in Perl verwendet. Diese Funktion gibt den von json dekodierten Wert an einen geeigneten Perl-Typ zurück.

Syntax

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

Beispiel

Das folgende Beispiel zeigt, wie Perl zum Dekodieren von JSON-Objekten verwendet werden kann. Hier müssen Sie das Data :: Dumper-Modul installieren, wenn Sie es noch nicht auf Ihrem Computer haben.

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

Bei der Ausführung wird folgendes Ergebnis erzielt:

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