本節描述如何在Perl中編碼/解碼JSON。開源中存在許多模塊,可以輕鬆地將Perl數據結構轉換為JSON,反之亦然。下麵列出了一些流行的方法
- JSON
- JSON:頁
- JSON: Syck
- JSON:: x
- Cpanel: JSON:: x
- Mojo::JSON, Mojolicious的一部分。
- JSON::MaybeXS
- JSON:冰毒
PP是一個純Perl實現,可以在Perl核心的最新版本中找到它。MaybeXS是許多此類實現的包裝器。要使JSON在Perl中工作,您需要從CPAN安裝JSON模塊。下載了JSON模塊後,輸入JSON-x.y .tar.gz,其中x.y指的是它的版本,按照下麵提到的步驟使其工作。
$tar xvfz JSON-x.yy.tar.gzyy $perl Makefile.PL $make $make安裝
在Perl中工作的主要JSON函數有Encode_json (), decode_json(), to_json()而且from_json ()
- encode_json這個函數將給定的Perl數據結構轉換為UTF-8編碼的二進製字符串。
- decode_json這個函數解碼一個JSON字符串。
- to_json這個函數將給定的Perl數據結構轉換為json字符串。
- from_json這個函數期望一個json字符串,解析它並返回結果引用。
convert_blessed這個函數用來告訴Perl在對象的類上使用TO_JSON方法將對象轉換為JSON(如果convert_bless()設置為true)。
encode_json()將給定的Perl數據結構轉換為unicode二進製字符串。它的語法是
$json_text = encode_json ($perl_scalar);或者$json_text = JSON->new->utf8->encode($perl_scalar);讓我們看看這個函數是怎麼運行的。# !/usr/bin/perl使用JSON;我% country_code =(“印度”= >“在”、“巴基斯坦”= >“PK”,“中國”= >“CH”、“斯裏蘭卡”= >“SL”);My $json = encode_json \%country_code;打印“美元json \ n”;
該代碼的輸出是{'India':"IN",'Pakistan':"PK",'China':"CH",'SriLanka':"SL"}
現在,我們繼續decode_json ()在Perl。這個函數在Perl中解碼JSON字符串,返回從JSON解碼到適當Perl類型的值。參見下麵的代碼以更好地理解這個函數。
它的語法是
$perl_scalar = decode_json $json_text或$perl_scalar = JSON->new->utf8->decode($json_text)
是時候進行一些編碼工作了!下麵的代碼片段將json字符串轉換為perl變量。
# !/usr/bin/perl使用JSON;使用Data:: Dumper;美元jsonCountrycode = '{'印度”:“在”,“巴基斯坦”:“PK”,“中國”:“CH”、“斯裏蘭卡”:“SL”}';$myText = decode_json ($jsonCountrycode);打印翻車機($ mytext);
這段代碼的輸出將是
$ VAR1 ={“印度”= >“在”、“巴基斯坦”= >“PK”,“中國”= >“CH”、“斯裏蘭卡”= >“SL”};