पर्ल के साथ JSON

इस अध्याय में कवर किया गया है कि पर्ल प्रोग्रामिंग भाषा का उपयोग करके JSON ऑब्जेक्ट्स को कैसे एनकोड और डीकोड किया जाए। आइए JSON के लिए पर्ल के साथ हमारी प्रोग्रामिंग शुरू करने के लिए पर्यावरण तैयार करने के साथ शुरू करें।

वातावरण

इससे पहले कि आप पर्ल का उपयोग करके 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 किसी दिए गए पर्ल डेटा संरचना को UTF-8 एन्कोडेड, बाइनरी स्ट्रिंग में कनवर्ट करता है।
decode_json JSON स्ट्रिंग को डिकोड करता है।
to_json दिए गए Perl डेटा संरचना को json स्ट्रिंग में कनवर्ट करता है।
from_json एक जस स्ट्रिंग की अपेक्षा करता है और इसे पार्स करने की कोशिश करता है, जिसके परिणामस्वरूप संदर्भ लौटता है।
convert_blessed इस फ़ंक्शन का उपयोग सच्चे मूल्य के साथ करें ताकि पर्ल ऑब्जेक्ट के वर्ग में TO_JSON विधि का उपयोग करके JSON में ऑब्जेक्ट को परिवर्तित कर सके।

Perl में JSON एनकोडिंग (encode_json)

Perl encode_json () फ़ंक्शन दिए गए पर्ल डेटा संरचना को UTF-8 एन्कोडेड, बाइनरी स्ट्रिंग में कनवर्ट करता है।

वाक्य - विन्यास

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

उदाहरण

निम्न उदाहरण पर्ल के साथ 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}

निम्नलिखित उदाहरण दिखाता है कि पर्ल वस्तुओं को 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"}

Decl में JSON को डिकोड करना (decode_json)

Perl decode_json () फ़ंक्शन का उपयोग पर्ल में JSON को डिकोड करने के लिए किया जाता है। यह फ़ंक्शन मान को json से उचित पर्ल प्रकार तक डीकोड किया गया देता है।

वाक्य - विन्यास

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

उदाहरण

निम्न उदाहरण दिखाता है कि JSON ऑब्जेक्ट्स को डीकोड करने के लिए Perl का उपयोग कैसे किया जा सकता है। यहां आपको डेटा :: डम्पर मॉड्यूल स्थापित करने की आवश्यकता होगी यदि आपके पास पहले से ही यह आपके मशीन पर नहीं है।

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