JSON

JSON與Perl

JSON與Perl

本節描述如何在Perl中編碼/解碼JSON。開源中存在許多模塊,可以輕鬆地將Perl數據結構轉換為JSON,反之亦然。下麵列出了一些流行的方法

  1. JSON
  2. JSON:頁
  3. JSON: Syck
  4. JSON:: x
  5. Cpanel: JSON:: x
  6. Mojo::JSON, Mojolicious的一部分。
  7. JSON::MaybeXS
  8. 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 ()

  1. encode_json這個函數將給定的Perl數據結構轉換為UTF-8編碼的二進製字符串。
  2. decode_json這個函數解碼一個JSON字符串。
  3. to_json這個函數將給定的Perl數據結構轉換為json字符串。
  4. 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”};

Baidu
map